Mass rewrite dtors to use "= default".

A simple search and replace with sed s/::~\(.*\) {}$/::~\1 = default;/
works surprisingly well.

Change-Id: Ie958265266e504006061e8f1b957046dfecd70dc
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70251
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp
index 0243c04..b515134 100644
--- a/core/fpdfapi/edit/cpdf_creator.cpp
+++ b/core/fpdfapi/edit/cpdf_creator.cpp
@@ -148,7 +148,7 @@
       m_dwLastObjNum(m_pDocument->GetLastObjNum()),
       m_Archive(std::make_unique<CFX_FileBufferArchive>(archive)) {}
 
-CPDF_Creator::~CPDF_Creator() {}
+CPDF_Creator::~CPDF_Creator() = default;
 
 bool CPDF_Creator::WriteIndirectObj(uint32_t objnum, const CPDF_Object* pObj) {
   if (!m_Archive->WriteDWord(objnum) || !m_Archive->WriteString(" 0 obj\r\n"))
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index 2dda2b6..34dde67 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -62,7 +62,7 @@
   }
 }
 
-CPDF_PageContentGenerator::~CPDF_PageContentGenerator() {}
+CPDF_PageContentGenerator::~CPDF_PageContentGenerator() = default;
 
 void CPDF_PageContentGenerator::GenerateContent() {
   ASSERT(m_pObjHolder->IsPage());
diff --git a/core/fpdfapi/edit/cpdf_stringarchivestream.cpp b/core/fpdfapi/edit/cpdf_stringarchivestream.cpp
index 4840db8..6e2d956 100644
--- a/core/fpdfapi/edit/cpdf_stringarchivestream.cpp
+++ b/core/fpdfapi/edit/cpdf_stringarchivestream.cpp
@@ -7,7 +7,7 @@
 CPDF_StringArchiveStream::CPDF_StringArchiveStream(std::ostringstream* stream)
     : stream_(stream) {}
 
-CPDF_StringArchiveStream::~CPDF_StringArchiveStream() {}
+CPDF_StringArchiveStream::~CPDF_StringArchiveStream() = default;
 
 bool CPDF_StringArchiveStream::WriteByte(uint8_t byte) {
   NOTREACHED();
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.cpp b/core/fpdfapi/font/cfx_cttgsubtable.cpp
index 305ece5..16c6547 100644
--- a/core/fpdfapi/font/cfx_cttgsubtable.cpp
+++ b/core/fpdfapi/font/cfx_cttgsubtable.cpp
@@ -319,17 +319,17 @@
 CFX_CTTGSUBTable::TLangSysRecord::TLangSysRecord()
     : LangSysTag(0), LookupOrder(0), ReqFeatureIndex(0) {}
 
-CFX_CTTGSUBTable::TLangSysRecord::~TLangSysRecord() {}
+CFX_CTTGSUBTable::TLangSysRecord::~TLangSysRecord() = default;
 
 CFX_CTTGSUBTable::TScriptRecord::TScriptRecord()
     : ScriptTag(0), DefaultLangSys(0) {}
 
-CFX_CTTGSUBTable::TScriptRecord::~TScriptRecord() {}
+CFX_CTTGSUBTable::TScriptRecord::~TScriptRecord() = default;
 
 CFX_CTTGSUBTable::TFeatureRecord::TFeatureRecord()
     : FeatureTag(0), FeatureParams(0) {}
 
-CFX_CTTGSUBTable::TFeatureRecord::~TFeatureRecord() {}
+CFX_CTTGSUBTable::TFeatureRecord::~TFeatureRecord() = default;
 
 CFX_CTTGSUBTable::TRangeRecord::TRangeRecord()
     : Start(0), End(0), StartCoverageIndex(0) {}
@@ -338,30 +338,30 @@
   CoverageFormat = 1;
 }
 
-CFX_CTTGSUBTable::TCoverageFormat1::~TCoverageFormat1() {}
+CFX_CTTGSUBTable::TCoverageFormat1::~TCoverageFormat1() = default;
 
 CFX_CTTGSUBTable::TCoverageFormat2::TCoverageFormat2() {
   CoverageFormat = 2;
 }
 
-CFX_CTTGSUBTable::TCoverageFormat2::~TCoverageFormat2() {}
+CFX_CTTGSUBTable::TCoverageFormat2::~TCoverageFormat2() = default;
 
 CFX_CTTGSUBTable::TSubTableBase::TSubTableBase() {}
 
-CFX_CTTGSUBTable::TSubTableBase::~TSubTableBase() {}
+CFX_CTTGSUBTable::TSubTableBase::~TSubTableBase() = default;
 
 CFX_CTTGSUBTable::TSubTable1::TSubTable1() {
   SubstFormat = 1;
 }
 
-CFX_CTTGSUBTable::TSubTable1::~TSubTable1() {}
+CFX_CTTGSUBTable::TSubTable1::~TSubTable1() = default;
 
 CFX_CTTGSUBTable::TSubTable2::TSubTable2() {
   SubstFormat = 2;
 }
 
-CFX_CTTGSUBTable::TSubTable2::~TSubTable2() {}
+CFX_CTTGSUBTable::TSubTable2::~TSubTable2() = default;
 
 CFX_CTTGSUBTable::TLookup::TLookup() : LookupType(0), LookupFlag(0) {}
 
-CFX_CTTGSUBTable::TLookup::~TLookup() {}
+CFX_CTTGSUBTable::TLookup::~TLookup() = default;
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp
index fd1dcfa..3bbefc4 100644
--- a/core/fpdfapi/font/cpdf_cidfont.cpp
+++ b/core/fpdfapi/font/cpdf_cidfont.cpp
@@ -213,7 +213,7 @@
     m_CharBBox[i] = FX_RECT(-1, -1, -1, -1);
 }
 
-CPDF_CIDFont::~CPDF_CIDFont() {}
+CPDF_CIDFont::~CPDF_CIDFont() = default;
 
 bool CPDF_CIDFont::IsCIDFont() const {
   return true;
diff --git a/core/fpdfapi/page/cpdf_colorstate.cpp b/core/fpdfapi/page/cpdf_colorstate.cpp
index 50dbb71..4f99733 100644
--- a/core/fpdfapi/page/cpdf_colorstate.cpp
+++ b/core/fpdfapi/page/cpdf_colorstate.cpp
@@ -16,7 +16,7 @@
 CPDF_ColorState::CPDF_ColorState(const CPDF_ColorState& that)
     : m_Ref(that.m_Ref) {}
 
-CPDF_ColorState::~CPDF_ColorState() {}
+CPDF_ColorState::~CPDF_ColorState() = default;
 
 void CPDF_ColorState::Emplace() {
   m_Ref.Emplace();
diff --git a/core/fpdfapi/page/cpdf_contentmarkitem.cpp b/core/fpdfapi/page/cpdf_contentmarkitem.cpp
index a361e5b..2493ff5 100644
--- a/core/fpdfapi/page/cpdf_contentmarkitem.cpp
+++ b/core/fpdfapi/page/cpdf_contentmarkitem.cpp
@@ -13,7 +13,7 @@
 CPDF_ContentMarkItem::CPDF_ContentMarkItem(ByteString name)
     : m_MarkName(std::move(name)) {}
 
-CPDF_ContentMarkItem::~CPDF_ContentMarkItem() {}
+CPDF_ContentMarkItem::~CPDF_ContentMarkItem() = default;
 
 const CPDF_Dictionary* CPDF_ContentMarkItem::GetParam() const {
   switch (m_ParamType) {
diff --git a/core/fpdfapi/page/cpdf_contentmarks.cpp b/core/fpdfapi/page/cpdf_contentmarks.cpp
index dc41a3d..414ce2b 100644
--- a/core/fpdfapi/page/cpdf_contentmarks.cpp
+++ b/core/fpdfapi/page/cpdf_contentmarks.cpp
@@ -100,7 +100,7 @@
 CPDF_ContentMarks::MarkData::MarkData(const MarkData& src)
     : m_Marks(src.m_Marks) {}
 
-CPDF_ContentMarks::MarkData::~MarkData() {}
+CPDF_ContentMarks::MarkData::~MarkData() = default;
 
 size_t CPDF_ContentMarks::MarkData::CountItems() const {
   return m_Marks.size();
diff --git a/core/fpdfapi/page/cpdf_contentparser.cpp b/core/fpdfapi/page/cpdf_contentparser.cpp
index ba320f9..439c9a3 100644
--- a/core/fpdfapi/page/cpdf_contentparser.cpp
+++ b/core/fpdfapi/page/cpdf_contentparser.cpp
@@ -102,7 +102,7 @@
   m_Size = m_pSingleStream->GetSize();
 }
 
-CPDF_ContentParser::~CPDF_ContentParser() {}
+CPDF_ContentParser::~CPDF_ContentParser() = default;
 
 // Returning |true| means that there is more content to be processed and
 // Continue() should be called again. Returning |false| means that we've
diff --git a/core/fpdfapi/page/cpdf_formobject.cpp b/core/fpdfapi/page/cpdf_formobject.cpp
index a7c2643..41fa02a 100644
--- a/core/fpdfapi/page/cpdf_formobject.cpp
+++ b/core/fpdfapi/page/cpdf_formobject.cpp
@@ -17,7 +17,7 @@
       m_pForm(std::move(pForm)),
       m_FormMatrix(matrix) {}
 
-CPDF_FormObject::~CPDF_FormObject() {}
+CPDF_FormObject::~CPDF_FormObject() = default;
 
 void CPDF_FormObject::Transform(const CFX_Matrix& matrix) {
   m_FormMatrix.Concat(matrix);
diff --git a/core/fpdfapi/page/cpdf_generalstate.cpp b/core/fpdfapi/page/cpdf_generalstate.cpp
index 9387fe9..351866a 100644
--- a/core/fpdfapi/page/cpdf_generalstate.cpp
+++ b/core/fpdfapi/page/cpdf_generalstate.cpp
@@ -71,7 +71,7 @@
 CPDF_GeneralState::CPDF_GeneralState(const CPDF_GeneralState& that)
     : m_Ref(that.m_Ref) {}
 
-CPDF_GeneralState::~CPDF_GeneralState() {}
+CPDF_GeneralState::~CPDF_GeneralState() = default;
 
 void CPDF_GeneralState::SetRenderIntent(const ByteString& ri) {
   m_Ref.GetPrivateCopy()->m_RenderIntent = RI_StringToId(ri);
diff --git a/core/fpdfapi/page/cpdf_graphicstates.cpp b/core/fpdfapi/page/cpdf_graphicstates.cpp
index 962bc0a..7dbd1ff 100644
--- a/core/fpdfapi/page/cpdf_graphicstates.cpp
+++ b/core/fpdfapi/page/cpdf_graphicstates.cpp
@@ -8,7 +8,7 @@
 
 CPDF_GraphicStates::CPDF_GraphicStates() {}
 
-CPDF_GraphicStates::~CPDF_GraphicStates() {}
+CPDF_GraphicStates::~CPDF_GraphicStates() = default;
 
 void CPDF_GraphicStates::DefaultStates() {
   m_ColorState.Emplace();
diff --git a/core/fpdfapi/page/cpdf_meshstream.cpp b/core/fpdfapi/page/cpdf_meshstream.cpp
index c7ff446..1376c3b 100644
--- a/core/fpdfapi/page/cpdf_meshstream.cpp
+++ b/core/fpdfapi/page/cpdf_meshstream.cpp
@@ -117,7 +117,7 @@
   memset(&m_ColorMax, 0, sizeof(m_ColorMax));
 }
 
-CPDF_MeshStream::~CPDF_MeshStream() {}
+CPDF_MeshStream::~CPDF_MeshStream() = default;
 
 bool CPDF_MeshStream::Load() {
   m_pStream->LoadAllDataFiltered();
diff --git a/core/fpdfapi/page/cpdf_occontext.cpp b/core/fpdfapi/page/cpdf_occontext.cpp
index 96f8a88..a5751b0 100644
--- a/core/fpdfapi/page/cpdf_occontext.cpp
+++ b/core/fpdfapi/page/cpdf_occontext.cpp
@@ -97,7 +97,7 @@
   ASSERT(pDoc);
 }
 
-CPDF_OCContext::~CPDF_OCContext() {}
+CPDF_OCContext::~CPDF_OCContext() = default;
 
 bool CPDF_OCContext::LoadOCGStateFromConfig(
     const ByteString& csConfig,
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp
index 89c03a8..7f44d56 100644
--- a/core/fpdfapi/page/cpdf_page.cpp
+++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -35,7 +35,7 @@
   LoadTransparencyInfo();
 }
 
-CPDF_Page::~CPDF_Page() {}
+CPDF_Page::~CPDF_Page() = default;
 
 CPDF_Page* CPDF_Page::AsPDFPage() {
   return this;
diff --git a/core/fpdfapi/page/cpdf_psengine.cpp b/core/fpdfapi/page/cpdf_psengine.cpp
index abd5a8e..d3f8f4f 100644
--- a/core/fpdfapi/page/cpdf_psengine.cpp
+++ b/core/fpdfapi/page/cpdf_psengine.cpp
@@ -90,7 +90,7 @@
 
 CPDF_PSOP::CPDF_PSOP(float value) : m_op(PSOP_CONST), m_value(value) {}
 
-CPDF_PSOP::~CPDF_PSOP() {}
+CPDF_PSOP::~CPDF_PSOP() = default;
 
 float CPDF_PSOP::GetFloatValue() const {
   if (m_op == PSOP_CONST)
@@ -112,7 +112,7 @@
 }
 
 CPDF_PSProc::CPDF_PSProc() {}
-CPDF_PSProc::~CPDF_PSProc() {}
+CPDF_PSProc::~CPDF_PSProc() = default;
 
 bool CPDF_PSProc::Parse(CPDF_SimpleParser* parser, int depth) {
   if (depth > kMaxDepth)
diff --git a/core/fpdfapi/page/cpdf_psfunc.cpp b/core/fpdfapi/page/cpdf_psfunc.cpp
index ffc5053..f4d00dc 100644
--- a/core/fpdfapi/page/cpdf_psfunc.cpp
+++ b/core/fpdfapi/page/cpdf_psfunc.cpp
@@ -11,7 +11,7 @@
 
 CPDF_PSFunc::CPDF_PSFunc() : CPDF_Function(Type::kType4PostScript) {}
 
-CPDF_PSFunc::~CPDF_PSFunc() {}
+CPDF_PSFunc::~CPDF_PSFunc() = default;
 
 bool CPDF_PSFunc::v_Init(const CPDF_Object* pObj,
                          std::set<const CPDF_Object*>* pVisited) {
diff --git a/core/fpdfapi/page/cpdf_sampledfunc.cpp b/core/fpdfapi/page/cpdf_sampledfunc.cpp
index c80e16c..32723c4 100644
--- a/core/fpdfapi/page/cpdf_sampledfunc.cpp
+++ b/core/fpdfapi/page/cpdf_sampledfunc.cpp
@@ -38,7 +38,7 @@
 
 CPDF_SampledFunc::CPDF_SampledFunc() : CPDF_Function(Type::kType0Sampled) {}
 
-CPDF_SampledFunc::~CPDF_SampledFunc() {}
+CPDF_SampledFunc::~CPDF_SampledFunc() = default;
 
 bool CPDF_SampledFunc::v_Init(const CPDF_Object* pObj,
                               std::set<const CPDF_Object*>* pVisited) {
diff --git a/core/fpdfapi/page/cpdf_shadingobject.cpp b/core/fpdfapi/page/cpdf_shadingobject.cpp
index be6b910..908e641 100644
--- a/core/fpdfapi/page/cpdf_shadingobject.cpp
+++ b/core/fpdfapi/page/cpdf_shadingobject.cpp
@@ -13,7 +13,7 @@
                                        const CFX_Matrix& matrix)
     : CPDF_PageObject(content_stream), m_pShading(pattern), m_Matrix(matrix) {}
 
-CPDF_ShadingObject::~CPDF_ShadingObject() {}
+CPDF_ShadingObject::~CPDF_ShadingObject() = default;
 
 CPDF_PageObject::Type CPDF_ShadingObject::GetType() const {
   return SHADING;
diff --git a/core/fpdfapi/page/cpdf_stitchfunc.cpp b/core/fpdfapi/page/cpdf_stitchfunc.cpp
index 1ec48ac..10f1eb1 100644
--- a/core/fpdfapi/page/cpdf_stitchfunc.cpp
+++ b/core/fpdfapi/page/cpdf_stitchfunc.cpp
@@ -21,7 +21,7 @@
 
 CPDF_StitchFunc::CPDF_StitchFunc() : CPDF_Function(Type::kType3Stitching) {}
 
-CPDF_StitchFunc::~CPDF_StitchFunc() {}
+CPDF_StitchFunc::~CPDF_StitchFunc() = default;
 
 bool CPDF_StitchFunc::v_Init(const CPDF_Object* pObj,
                              std::set<const CPDF_Object*>* pVisited) {
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index a41f6dd..c7c9d32 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -1640,4 +1640,4 @@
 
 CPDF_StreamContentParser::ContentParam::ContentParam() {}
 
-CPDF_StreamContentParser::ContentParam::~ContentParam() {}
+CPDF_StreamContentParser::ContentParam::~ContentParam() = default;
diff --git a/core/fpdfapi/page/cpdf_streamparser.cpp b/core/fpdfapi/page/cpdf_streamparser.cpp
index 611d6d9..eea54bb 100644
--- a/core/fpdfapi/page/cpdf_streamparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamparser.cpp
@@ -120,7 +120,7 @@
                                      const WeakPtr<ByteStringPool>& pPool)
     : m_pPool(pPool), m_pBuf(span) {}
 
-CPDF_StreamParser::~CPDF_StreamParser() {}
+CPDF_StreamParser::~CPDF_StreamParser() = default;
 
 RetainPtr<CPDF_Stream> CPDF_StreamParser::ReadInlineStream(
     CPDF_Document* pDoc,
diff --git a/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp b/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp
index a6de007..bf5f423 100644
--- a/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_cross_ref_avail.cpp
@@ -34,7 +34,7 @@
   AddCrossRefForCheck(last_crossref_offset);
 }
 
-CPDF_CrossRefAvail::~CPDF_CrossRefAvail() {}
+CPDF_CrossRefAvail::~CPDF_CrossRefAvail() = default;
 
 CPDF_DataAvail::DocAvailStatus CPDF_CrossRefAvail::CheckAvail() {
   if (current_status_ == CPDF_DataAvail::DataAvailable)
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index f8eb116..bb3c18f 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -70,9 +70,9 @@
 
 }  // namespace
 
-CPDF_DataAvail::FileAvail::~FileAvail() {}
+CPDF_DataAvail::FileAvail::~FileAvail() = default;
 
-CPDF_DataAvail::DownloadHints::~DownloadHints() {}
+CPDF_DataAvail::DownloadHints::~DownloadHints() = default;
 
 CPDF_DataAvail::CPDF_DataAvail(
     FileAvail* pFileAvail,
@@ -1028,4 +1028,4 @@
 
 CPDF_DataAvail::PageNode::PageNode() : m_type(PDF_PAGENODE_UNKNOWN) {}
 
-CPDF_DataAvail::PageNode::~PageNode() {}
+CPDF_DataAvail::PageNode::~PageNode() = default;
diff --git a/core/fpdfapi/parser/cpdf_encryptor.cpp b/core/fpdfapi/parser/cpdf_encryptor.cpp
index d7932f1..abed975 100644
--- a/core/fpdfapi/parser/cpdf_encryptor.cpp
+++ b/core/fpdfapi/parser/cpdf_encryptor.cpp
@@ -27,4 +27,4 @@
   return result;
 }
 
-CPDF_Encryptor::~CPDF_Encryptor() {}
+CPDF_Encryptor::~CPDF_Encryptor() = default;
diff --git a/core/fpdfapi/parser/cpdf_flateencoder.cpp b/core/fpdfapi/parser/cpdf_flateencoder.cpp
index b685822..95ba5f8 100644
--- a/core/fpdfapi/parser/cpdf_flateencoder.cpp
+++ b/core/fpdfapi/parser/cpdf_flateencoder.cpp
@@ -54,7 +54,7 @@
   ASSERT(!m_pDict);
 }
 
-CPDF_FlateEncoder::~CPDF_FlateEncoder() {}
+CPDF_FlateEncoder::~CPDF_FlateEncoder() = default;
 
 void CPDF_FlateEncoder::CloneDict() {
   if (m_pClonedDict) {
diff --git a/core/fpdfapi/parser/cpdf_hint_tables.cpp b/core/fpdfapi/parser/cpdf_hint_tables.cpp
index 3df802d..eb0645f 100644
--- a/core/fpdfapi/parser/cpdf_hint_tables.cpp
+++ b/core/fpdfapi/parser/cpdf_hint_tables.cpp
@@ -83,7 +83,7 @@
   ASSERT(m_pLinearized);
 }
 
-CPDF_HintTables::~CPDF_HintTables() {}
+CPDF_HintTables::~CPDF_HintTables() = default;
 
 bool CPDF_HintTables::ReadPageHintTable(CFX_BitStream* hStream) {
   const uint32_t nPages = m_pLinearized->GetPageCount();
diff --git a/core/fpdfapi/parser/cpdf_linearized_header.cpp b/core/fpdfapi/parser/cpdf_linearized_header.cpp
index c7dc54a..f955263 100644
--- a/core/fpdfapi/parser/cpdf_linearized_header.cpp
+++ b/core/fpdfapi/parser/cpdf_linearized_header.cpp
@@ -103,7 +103,7 @@
   }
 }
 
-CPDF_LinearizedHeader::~CPDF_LinearizedHeader() {}
+CPDF_LinearizedHeader::~CPDF_LinearizedHeader() = default;
 
 bool CPDF_LinearizedHeader::HasHintTable() const {
   return GetPageCount() > 1 && GetHintStart() > 0 && GetHintLength() > 0;
diff --git a/core/fpdfapi/parser/cpdf_name.cpp b/core/fpdfapi/parser/cpdf_name.cpp
index 4ebac23..33ee8aa 100644
--- a/core/fpdfapi/parser/cpdf_name.cpp
+++ b/core/fpdfapi/parser/cpdf_name.cpp
@@ -16,7 +16,7 @@
     m_Name = pPool->Intern(m_Name);
 }
 
-CPDF_Name::~CPDF_Name() {}
+CPDF_Name::~CPDF_Name() = default;
 
 CPDF_Object::Type CPDF_Name::GetType() const {
   return kName;
diff --git a/core/fpdfapi/parser/cpdf_number.cpp b/core/fpdfapi/parser/cpdf_number.cpp
index ea24d17..17df934 100644
--- a/core/fpdfapi/parser/cpdf_number.cpp
+++ b/core/fpdfapi/parser/cpdf_number.cpp
@@ -16,7 +16,7 @@
 
 CPDF_Number::CPDF_Number(ByteStringView str) : m_Number(str) {}
 
-CPDF_Number::~CPDF_Number() {}
+CPDF_Number::~CPDF_Number() = default;
 
 CPDF_Object::Type CPDF_Number::GetType() const {
   return kNumber;
diff --git a/core/fpdfapi/parser/cpdf_object.cpp b/core/fpdfapi/parser/cpdf_object.cpp
index 711634c..a7535f4 100644
--- a/core/fpdfapi/parser/cpdf_object.cpp
+++ b/core/fpdfapi/parser/cpdf_object.cpp
@@ -16,7 +16,7 @@
 #include "core/fxcrt/fx_string.h"
 #include "third_party/base/logging.h"
 
-CPDF_Object::~CPDF_Object() {}
+CPDF_Object::~CPDF_Object() = default;
 
 CPDF_Object* CPDF_Object::GetDirect() {
   return this;
diff --git a/core/fpdfapi/parser/cpdf_object_avail.cpp b/core/fpdfapi/parser/cpdf_object_avail.cpp
index 2ce36fb..b788bdd 100644
--- a/core/fpdfapi/parser/cpdf_object_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_object_avail.cpp
@@ -35,7 +35,7 @@
   ASSERT(holder);
 }
 
-CPDF_ObjectAvail::~CPDF_ObjectAvail() {}
+CPDF_ObjectAvail::~CPDF_ObjectAvail() = default;
 
 CPDF_DataAvail::DocAvailStatus CPDF_ObjectAvail::CheckAvail() {
   if (!LoadRootObject())
diff --git a/core/fpdfapi/parser/cpdf_object_walker.cpp b/core/fpdfapi/parser/cpdf_object_walker.cpp
index 23d4271..ea37aff 100644
--- a/core/fpdfapi/parser/cpdf_object_walker.cpp
+++ b/core/fpdfapi/parser/cpdf_object_walker.cpp
@@ -93,7 +93,7 @@
 
 }  // namespace
 
-CPDF_ObjectWalker::SubobjectIterator::~SubobjectIterator() {}
+CPDF_ObjectWalker::SubobjectIterator::~SubobjectIterator() = default;
 
 const CPDF_Object* CPDF_ObjectWalker::SubobjectIterator::Increment() {
   if (!IsStarted()) {
diff --git a/core/fpdfapi/parser/cpdf_page_object_avail.cpp b/core/fpdfapi/parser/cpdf_page_object_avail.cpp
index 6673885..157702c 100644
--- a/core/fpdfapi/parser/cpdf_page_object_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_page_object_avail.cpp
@@ -6,7 +6,7 @@
 
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
 
-CPDF_PageObjectAvail::~CPDF_PageObjectAvail() {}
+CPDF_PageObjectAvail::~CPDF_PageObjectAvail() = default;
 
 bool CPDF_PageObjectAvail::ExcludeObject(const CPDF_Object* object) const {
   if (CPDF_ObjectAvail::ExcludeObject(object))
diff --git a/core/fpdfapi/parser/cpdf_read_validator.cpp b/core/fpdfapi/parser/cpdf_read_validator.cpp
index 80e6517..0c5d02b 100644
--- a/core/fpdfapi/parser/cpdf_read_validator.cpp
+++ b/core/fpdfapi/parser/cpdf_read_validator.cpp
@@ -50,7 +50,7 @@
       whole_file_already_available_(false),
       file_size_(file_read->GetSize()) {}
 
-CPDF_ReadValidator::~CPDF_ReadValidator() {}
+CPDF_ReadValidator::~CPDF_ReadValidator() = default;
 
 void CPDF_ReadValidator::ResetErrors() {
   read_error_ = false;
diff --git a/core/fpdfapi/parser/cpdf_reference.cpp b/core/fpdfapi/parser/cpdf_reference.cpp
index f3dcf74..41fd2e3 100644
--- a/core/fpdfapi/parser/cpdf_reference.cpp
+++ b/core/fpdfapi/parser/cpdf_reference.cpp
@@ -13,7 +13,7 @@
 CPDF_Reference::CPDF_Reference(CPDF_IndirectObjectHolder* pDoc, uint32_t objnum)
     : m_pObjList(pDoc), m_RefObjNum(objnum) {}
 
-CPDF_Reference::~CPDF_Reference() {}
+CPDF_Reference::~CPDF_Reference() = default;
 
 CPDF_Object::Type CPDF_Reference::GetType() const {
   return kReference;
diff --git a/core/fpdfapi/parser/cpdf_seekablemultistream.cpp b/core/fpdfapi/parser/cpdf_seekablemultistream.cpp
index d2a0417..5c9b114 100644
--- a/core/fpdfapi/parser/cpdf_seekablemultistream.cpp
+++ b/core/fpdfapi/parser/cpdf_seekablemultistream.cpp
@@ -20,7 +20,7 @@
   }
 }
 
-CPDF_SeekableMultiStream::~CPDF_SeekableMultiStream() {}
+CPDF_SeekableMultiStream::~CPDF_SeekableMultiStream() = default;
 
 FX_FILESIZE CPDF_SeekableMultiStream::GetSize() {
   uint32_t dwSize = 0;
diff --git a/core/fpdfapi/render/cpdf_pagerendercontext.cpp b/core/fpdfapi/render/cpdf_pagerendercontext.cpp
index 8dd66c7..8b6c7a7 100644
--- a/core/fpdfapi/render/cpdf_pagerendercontext.cpp
+++ b/core/fpdfapi/render/cpdf_pagerendercontext.cpp
@@ -14,4 +14,4 @@
 
 CPDF_PageRenderContext::CPDF_PageRenderContext() {}
 
-CPDF_PageRenderContext::~CPDF_PageRenderContext() {}
+CPDF_PageRenderContext::~CPDF_PageRenderContext() = default;
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 97bd732..a0ed429 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -166,7 +166,7 @@
                                      CFX_RenderDevice* pDevice)
     : m_pContext(pContext), m_pDevice(pDevice) {}
 
-CPDF_RenderStatus::~CPDF_RenderStatus() {}
+CPDF_RenderStatus::~CPDF_RenderStatus() = default;
 
 void CPDF_RenderStatus::Initialize(const CPDF_RenderStatus* pParentStatus,
                                    const CPDF_GraphicStates* pInitialStates) {
diff --git a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
index 3f6c5c7..ab54d85 100644
--- a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
+++ b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
@@ -19,7 +19,7 @@
 
 CPDF_ScaledRenderBuffer::CPDF_ScaledRenderBuffer() {}
 
-CPDF_ScaledRenderBuffer::~CPDF_ScaledRenderBuffer() {}
+CPDF_ScaledRenderBuffer::~CPDF_ScaledRenderBuffer() = default;
 
 bool CPDF_ScaledRenderBuffer::Initialize(CPDF_RenderContext* pContext,
                                          CFX_RenderDevice* pDevice,
diff --git a/core/fpdfapi/render/cpdf_type3glyphmap.cpp b/core/fpdfapi/render/cpdf_type3glyphmap.cpp
index b144991..fb9000f 100644
--- a/core/fpdfapi/render/cpdf_type3glyphmap.cpp
+++ b/core/fpdfapi/render/cpdf_type3glyphmap.cpp
@@ -39,7 +39,7 @@
 
 CPDF_Type3GlyphMap::CPDF_Type3GlyphMap() {}
 
-CPDF_Type3GlyphMap::~CPDF_Type3GlyphMap() {}
+CPDF_Type3GlyphMap::~CPDF_Type3GlyphMap() = default;
 
 std::pair<int, int> CPDF_Type3GlyphMap::AdjustBlue(float top, float bottom) {
   return std::make_pair(AdjustBlueHelper(top, &m_TopBlue),
diff --git a/core/fpdfdoc/cpdf_apsettings.cpp b/core/fpdfdoc/cpdf_apsettings.cpp
index 341764f..7a61836 100644
--- a/core/fpdfdoc/cpdf_apsettings.cpp
+++ b/core/fpdfdoc/cpdf_apsettings.cpp
@@ -17,7 +17,7 @@
 
 CPDF_ApSettings::CPDF_ApSettings(const CPDF_ApSettings& that) = default;
 
-CPDF_ApSettings::~CPDF_ApSettings() {}
+CPDF_ApSettings::~CPDF_ApSettings() = default;
 
 bool CPDF_ApSettings::HasMKEntry(const ByteString& csEntry) const {
   return m_pDict && m_pDict->KeyExist(csEntry);
diff --git a/core/fpdfdoc/cpdf_filespec.cpp b/core/fpdfdoc/cpdf_filespec.cpp
index 5e52f3e..f63ffe7 100644
--- a/core/fpdfdoc/cpdf_filespec.cpp
+++ b/core/fpdfdoc/cpdf_filespec.cpp
@@ -64,7 +64,7 @@
   ASSERT(m_pObj);
 }
 
-CPDF_FileSpec::~CPDF_FileSpec() {}
+CPDF_FileSpec::~CPDF_FileSpec() = default;
 
 WideString CPDF_FileSpec::DecodeFileName(const WideString& filepath) {
   if (filepath.GetLength() <= 1)
diff --git a/core/fpdfdoc/cpdf_numbertree.cpp b/core/fpdfdoc/cpdf_numbertree.cpp
index 46257c8..85f488b 100644
--- a/core/fpdfdoc/cpdf_numbertree.cpp
+++ b/core/fpdfdoc/cpdf_numbertree.cpp
@@ -50,7 +50,7 @@
 CPDF_NumberTree::CPDF_NumberTree(const CPDF_Dictionary* pRoot)
     : m_pRoot(pRoot) {}
 
-CPDF_NumberTree::~CPDF_NumberTree() {}
+CPDF_NumberTree::~CPDF_NumberTree() = default;
 
 const CPDF_Object* CPDF_NumberTree::LookupValue(int num) const {
   return SearchNumberNode(m_pRoot.Get(), num);
diff --git a/core/fpdfdoc/cpdf_pagelabel.cpp b/core/fpdfdoc/cpdf_pagelabel.cpp
index 8985def..a7e4f5b 100644
--- a/core/fpdfdoc/cpdf_pagelabel.cpp
+++ b/core/fpdfdoc/cpdf_pagelabel.cpp
@@ -76,7 +76,7 @@
 CPDF_PageLabel::CPDF_PageLabel(CPDF_Document* pDocument)
     : m_pDocument(pDocument) {}
 
-CPDF_PageLabel::~CPDF_PageLabel() {}
+CPDF_PageLabel::~CPDF_PageLabel() = default;
 
 Optional<WideString> CPDF_PageLabel::GetLabel(int nPage) const {
   if (!m_pDocument)
diff --git a/core/fpdfdoc/cpdf_variabletext.cpp b/core/fpdfdoc/cpdf_variabletext.cpp
index 0d4d1fa..fc114d4 100644
--- a/core/fpdfdoc/cpdf_variabletext.cpp
+++ b/core/fpdfdoc/cpdf_variabletext.cpp
@@ -35,7 +35,7 @@
   ASSERT(m_pFontMap);
 }
 
-CPDF_VariableText::Provider::~Provider() {}
+CPDF_VariableText::Provider::~Provider() = default;
 
 uint32_t CPDF_VariableText::Provider::GetCharWidth(int32_t nFontIndex,
                                                    uint16_t word) {
@@ -86,7 +86,7 @@
 CPDF_VariableText::Iterator::Iterator(CPDF_VariableText* pVT)
     : m_CurPos(-1, -1, -1), m_pVT(pVT) {}
 
-CPDF_VariableText::Iterator::~Iterator() {}
+CPDF_VariableText::Iterator::~Iterator() = default;
 
 void CPDF_VariableText::Iterator::SetAt(int32_t nWordIndex) {
   m_CurPos = m_pVT->WordIndexToWordPlace(nWordIndex);
diff --git a/core/fpdfdoc/cpvt_fontmap.cpp b/core/fpdfdoc/cpvt_fontmap.cpp
index b21bd0d..c098fb6 100644
--- a/core/fpdfdoc/cpvt_fontmap.cpp
+++ b/core/fpdfdoc/cpvt_fontmap.cpp
@@ -24,7 +24,7 @@
       m_pDefFont(pDefFont),
       m_sDefFontAlias(sDefFontAlias) {}
 
-CPVT_FontMap::~CPVT_FontMap() {}
+CPVT_FontMap::~CPVT_FontMap() = default;
 
 // static
 RetainPtr<CPDF_Font> CPVT_FontMap::GetAnnotSysPDFFont(
diff --git a/core/fpdfdoc/cpvt_wordinfo.cpp b/core/fpdfdoc/cpvt_wordinfo.cpp
index 1e1556b..dbbd52d 100644
--- a/core/fpdfdoc/cpvt_wordinfo.cpp
+++ b/core/fpdfdoc/cpvt_wordinfo.cpp
@@ -34,7 +34,7 @@
   operator=(word);
 }
 
-CPVT_WordInfo::~CPVT_WordInfo() {}
+CPVT_WordInfo::~CPVT_WordInfo() = default;
 
 CPVT_WordInfo& CPVT_WordInfo::operator=(const CPVT_WordInfo& word) {
   if (this == &word)
diff --git a/core/fxcodec/gif/cfx_lzwdecompressor.cpp b/core/fxcodec/gif/cfx_lzwdecompressor.cpp
index 12e0d89..35697fe 100644
--- a/core/fxcodec/gif/cfx_lzwdecompressor.cpp
+++ b/core/fxcodec/gif/cfx_lzwdecompressor.cpp
@@ -39,7 +39,7 @@
       bits_left_(0),
       code_store_(0) {}
 
-CFX_LZWDecompressor::~CFX_LZWDecompressor() {}
+CFX_LZWDecompressor::~CFX_LZWDecompressor() = default;
 
 CFX_GifDecodeStatus CFX_LZWDecompressor::Decode(const uint8_t* src_buf,
                                                 uint32_t src_size,
diff --git a/core/fxcodec/jbig2/JBig2_ArithDecoder.cpp b/core/fxcodec/jbig2/JBig2_ArithDecoder.cpp
index 92bcd21..dcff6c9 100644
--- a/core/fxcodec/jbig2/JBig2_ArithDecoder.cpp
+++ b/core/fxcodec/jbig2/JBig2_ArithDecoder.cpp
@@ -61,7 +61,7 @@
   m_A = kDefaultAValue;
 }
 
-CJBig2_ArithDecoder::~CJBig2_ArithDecoder() {}
+CJBig2_ArithDecoder::~CJBig2_ArithDecoder() = default;
 
 int CJBig2_ArithDecoder::Decode(JBig2ArithCtx* pCX) {
   ASSERT(pCX);
diff --git a/core/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp b/core/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp
index 79cc015..b2cd8aa 100644
--- a/core/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp
+++ b/core/fxcodec/jbig2/JBig2_ArithIntDecoder.cpp
@@ -46,7 +46,7 @@
   m_IAx.resize(512);
 }
 
-CJBig2_ArithIntDecoder::~CJBig2_ArithIntDecoder() {}
+CJBig2_ArithIntDecoder::~CJBig2_ArithIntDecoder() = default;
 
 bool CJBig2_ArithIntDecoder::Decode(CJBig2_ArithDecoder* pArithDecoder,
                                     int* nResult) {
@@ -90,7 +90,7 @@
   m_IAID.resize(static_cast<size_t>(1) << SBSYMCODELEN);
 }
 
-CJBig2_ArithIaidDecoder::~CJBig2_ArithIaidDecoder() {}
+CJBig2_ArithIaidDecoder::~CJBig2_ArithIaidDecoder() = default;
 
 void CJBig2_ArithIaidDecoder::Decode(CJBig2_ArithDecoder* pArithDecoder,
                                      uint32_t* nResult) {
diff --git a/core/fxcodec/jbig2/JBig2_Context.cpp b/core/fxcodec/jbig2/JBig2_Context.cpp
index d1afaf6..458c77c 100644
--- a/core/fxcodec/jbig2/JBig2_Context.cpp
+++ b/core/fxcodec/jbig2/JBig2_Context.cpp
@@ -75,7 +75,7 @@
       m_bIsGlobal(bIsGlobal),
       m_pSymbolDictCache(pSymbolDictCache) {}
 
-CJBig2_Context::~CJBig2_Context() {}
+CJBig2_Context::~CJBig2_Context() = default;
 
 JBig2_Result CJBig2_Context::DecodeSequential(PauseIndicatorIface* pPause) {
   if (m_pStream->getByteLeft() <= 0)
diff --git a/core/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp b/core/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp
index bea2b09..8f56dc5 100644
--- a/core/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp
+++ b/core/fxcodec/jbig2/JBig2_HuffmanDecoder.cpp
@@ -12,7 +12,7 @@
 CJBig2_HuffmanDecoder::CJBig2_HuffmanDecoder(CJBig2_BitStream* pStream)
     : m_pStream(pStream) {}
 
-CJBig2_HuffmanDecoder::~CJBig2_HuffmanDecoder() {}
+CJBig2_HuffmanDecoder::~CJBig2_HuffmanDecoder() = default;
 
 int CJBig2_HuffmanDecoder::DecodeAValue(const CJBig2_HuffmanTable* pTable,
                                         int* nResult) {
diff --git a/core/fxcodec/jbig2/JBig2_HuffmanTable.cpp b/core/fxcodec/jbig2/JBig2_HuffmanTable.cpp
index 4eb49ca..f440a46 100644
--- a/core/fxcodec/jbig2/JBig2_HuffmanTable.cpp
+++ b/core/fxcodec/jbig2/JBig2_HuffmanTable.cpp
@@ -144,7 +144,7 @@
   m_bOK = ParseFromCodedBuffer(pStream);
 }
 
-CJBig2_HuffmanTable::~CJBig2_HuffmanTable() {}
+CJBig2_HuffmanTable::~CJBig2_HuffmanTable() = default;
 
 bool CJBig2_HuffmanTable::ParseFromStandardTable(size_t idx) {
   const JBig2TableLine* pTable = kHuffmanTables[idx].lines;
diff --git a/core/fxcodec/jbig2/JBig2_PatternDict.cpp b/core/fxcodec/jbig2/JBig2_PatternDict.cpp
index 4e7959f..06a0d87 100644
--- a/core/fxcodec/jbig2/JBig2_PatternDict.cpp
+++ b/core/fxcodec/jbig2/JBig2_PatternDict.cpp
@@ -9,4 +9,4 @@
 CJBig2_PatternDict::CJBig2_PatternDict(uint32_t dict_size)
     : NUMPATS(dict_size), HDPATS(dict_size) {}
 
-CJBig2_PatternDict::~CJBig2_PatternDict() {}
+CJBig2_PatternDict::~CJBig2_PatternDict() = default;
diff --git a/core/fxcodec/jbig2/JBig2_Segment.cpp b/core/fxcodec/jbig2/JBig2_Segment.cpp
index 91fa2d9..35cad7d 100644
--- a/core/fxcodec/jbig2/JBig2_Segment.cpp
+++ b/core/fxcodec/jbig2/JBig2_Segment.cpp
@@ -19,4 +19,4 @@
   m_cFlags.c = 0;
 }
 
-CJBig2_Segment::~CJBig2_Segment() {}
+CJBig2_Segment::~CJBig2_Segment() = default;
diff --git a/core/fxcodec/jbig2/JBig2_SymbolDict.cpp b/core/fxcodec/jbig2/JBig2_SymbolDict.cpp
index 969d404..88a364e 100644
--- a/core/fxcodec/jbig2/JBig2_SymbolDict.cpp
+++ b/core/fxcodec/jbig2/JBig2_SymbolDict.cpp
@@ -10,7 +10,7 @@
 
 CJBig2_SymbolDict::CJBig2_SymbolDict() {}
 
-CJBig2_SymbolDict::~CJBig2_SymbolDict() {}
+CJBig2_SymbolDict::~CJBig2_SymbolDict() = default;
 
 std::unique_ptr<CJBig2_SymbolDict> CJBig2_SymbolDict::DeepCopy() const {
   auto dst = std::make_unique<CJBig2_SymbolDict>();
diff --git a/core/fxcrt/bytestring.cpp b/core/fxcrt/bytestring.cpp
index 0778bc2..7563db4 100644
--- a/core/fxcrt/bytestring.cpp
+++ b/core/fxcrt/bytestring.cpp
@@ -188,7 +188,7 @@
     m_pData.Reset(StringData::Create(str.c_str(), str.length()));
 }
 
-ByteString::~ByteString() {}
+ByteString::~ByteString() = default;
 
 ByteString& ByteString::operator=(const char* str) {
   if (!str || !str[0])
diff --git a/core/fxcrt/cfx_bitstream.cpp b/core/fxcrt/cfx_bitstream.cpp
index d16fc2f..66220ba 100644
--- a/core/fxcrt/cfx_bitstream.cpp
+++ b/core/fxcrt/cfx_bitstream.cpp
@@ -16,7 +16,7 @@
   ASSERT(pData.size() <= std::numeric_limits<uint32_t>::max() / 8);
 }
 
-CFX_BitStream::~CFX_BitStream() {}
+CFX_BitStream::~CFX_BitStream() = default;
 
 void CFX_BitStream::ByteAlign() {
   m_BitPos = FxAlignToBoundary<8>(m_BitPos);
diff --git a/core/fxcrt/css/cfx_csscolorvalue.cpp b/core/fxcrt/css/cfx_csscolorvalue.cpp
index 8c5473b..587ee5b 100644
--- a/core/fxcrt/css/cfx_csscolorvalue.cpp
+++ b/core/fxcrt/css/cfx_csscolorvalue.cpp
@@ -9,4 +9,4 @@
 CFX_CSSColorValue::CFX_CSSColorValue(FX_ARGB value)
     : CFX_CSSValue(CFX_CSSPrimitiveType::RGB), value_(value) {}
 
-CFX_CSSColorValue::~CFX_CSSColorValue() {}
+CFX_CSSColorValue::~CFX_CSSColorValue() = default;
diff --git a/core/fxcrt/css/cfx_csscomputedstyle.cpp b/core/fxcrt/css/cfx_csscomputedstyle.cpp
index 5b7b003..506305c 100644
--- a/core/fxcrt/css/cfx_csscomputedstyle.cpp
+++ b/core/fxcrt/css/cfx_csscomputedstyle.cpp
@@ -179,7 +179,7 @@
       m_eFontStyle(CFX_CSSFontStyle::Normal),
       m_eTextAlign(CFX_CSSTextAlign::Left) {}
 
-CFX_CSSComputedStyle::InheritedData::~InheritedData() {}
+CFX_CSSComputedStyle::InheritedData::~InheritedData() = default;
 
 CFX_CSSComputedStyle::NonInheritedData::NonInheritedData()
     : m_MarginWidth(CFX_CSSLengthUnit::Point, 0),
diff --git a/core/fxcrt/css/cfx_csscustomproperty.cpp b/core/fxcrt/css/cfx_csscustomproperty.cpp
index 353facd..c5c0730 100644
--- a/core/fxcrt/css/cfx_csscustomproperty.cpp
+++ b/core/fxcrt/css/cfx_csscustomproperty.cpp
@@ -11,4 +11,4 @@
 CFX_CSSCustomProperty::CFX_CSSCustomProperty(const CFX_CSSCustomProperty& prop)
     : name_(prop.name_), value_(prop.value_) {}
 
-CFX_CSSCustomProperty::~CFX_CSSCustomProperty() {}
+CFX_CSSCustomProperty::~CFX_CSSCustomProperty() = default;
diff --git a/core/fxcrt/css/cfx_cssdeclaration.cpp b/core/fxcrt/css/cfx_cssdeclaration.cpp
index 057ffab..5ef726b 100644
--- a/core/fxcrt/css/cfx_cssdeclaration.cpp
+++ b/core/fxcrt/css/cfx_cssdeclaration.cpp
@@ -139,7 +139,7 @@
 
 CFX_CSSDeclaration::CFX_CSSDeclaration() {}
 
-CFX_CSSDeclaration::~CFX_CSSDeclaration() {}
+CFX_CSSDeclaration::~CFX_CSSDeclaration() = default;
 
 RetainPtr<CFX_CSSValue> CFX_CSSDeclaration::GetProperty(
     CFX_CSSProperty eProperty,
diff --git a/core/fxcrt/css/cfx_cssenumvalue.cpp b/core/fxcrt/css/cfx_cssenumvalue.cpp
index c9b39be..f45a605 100644
--- a/core/fxcrt/css/cfx_cssenumvalue.cpp
+++ b/core/fxcrt/css/cfx_cssenumvalue.cpp
@@ -9,4 +9,4 @@
 CFX_CSSEnumValue::CFX_CSSEnumValue(CFX_CSSPropertyValue value)
     : CFX_CSSValue(CFX_CSSPrimitiveType::Enum), value_(value) {}
 
-CFX_CSSEnumValue::~CFX_CSSEnumValue() {}
+CFX_CSSEnumValue::~CFX_CSSEnumValue() = default;
diff --git a/core/fxcrt/css/cfx_cssnumbervalue.cpp b/core/fxcrt/css/cfx_cssnumbervalue.cpp
index d8f7247..f0c73cf 100644
--- a/core/fxcrt/css/cfx_cssnumbervalue.cpp
+++ b/core/fxcrt/css/cfx_cssnumbervalue.cpp
@@ -12,7 +12,7 @@
     value_ = 0.0f;
 }
 
-CFX_CSSNumberValue::~CFX_CSSNumberValue() {}
+CFX_CSSNumberValue::~CFX_CSSNumberValue() = default;
 
 float CFX_CSSNumberValue::Apply(float percentBase) const {
   switch (type_) {
diff --git a/core/fxcrt/css/cfx_csspropertyholder.cpp b/core/fxcrt/css/cfx_csspropertyholder.cpp
index 11e0d4b..ded7c92 100644
--- a/core/fxcrt/css/cfx_csspropertyholder.cpp
+++ b/core/fxcrt/css/cfx_csspropertyholder.cpp
@@ -8,4 +8,4 @@
 
 CFX_CSSPropertyHolder::CFX_CSSPropertyHolder() {}
 
-CFX_CSSPropertyHolder::~CFX_CSSPropertyHolder() {}
+CFX_CSSPropertyHolder::~CFX_CSSPropertyHolder() = default;
diff --git a/core/fxcrt/css/cfx_cssselector.cpp b/core/fxcrt/css/cfx_cssselector.cpp
index 492ec2e..61c4df8 100644
--- a/core/fxcrt/css/cfx_cssselector.cpp
+++ b/core/fxcrt/css/cfx_cssselector.cpp
@@ -32,7 +32,7 @@
     : m_eType(eType),
       m_dwHash(FX_HashCode_GetW(WideStringView(psz, iLen), bIgnoreCase)) {}
 
-CFX_CSSSelector::~CFX_CSSSelector() {}
+CFX_CSSSelector::~CFX_CSSSelector() = default;
 
 CFX_CSSSelectorType CFX_CSSSelector::GetType() const {
   return m_eType;
diff --git a/core/fxcrt/css/cfx_cssstringvalue.cpp b/core/fxcrt/css/cfx_cssstringvalue.cpp
index 6ff2a33..1c8fb5d 100644
--- a/core/fxcrt/css/cfx_cssstringvalue.cpp
+++ b/core/fxcrt/css/cfx_cssstringvalue.cpp
@@ -9,4 +9,4 @@
 CFX_CSSStringValue::CFX_CSSStringValue(const WideString& value)
     : CFX_CSSValue(CFX_CSSPrimitiveType::String), value_(value) {}
 
-CFX_CSSStringValue::~CFX_CSSStringValue() {}
+CFX_CSSStringValue::~CFX_CSSStringValue() = default;
diff --git a/core/fxcrt/css/cfx_cssstylerule.cpp b/core/fxcrt/css/cfx_cssstylerule.cpp
index 504771e..a30b994 100644
--- a/core/fxcrt/css/cfx_cssstylerule.cpp
+++ b/core/fxcrt/css/cfx_cssstylerule.cpp
@@ -8,7 +8,7 @@
 
 CFX_CSSStyleRule::CFX_CSSStyleRule() {}
 
-CFX_CSSStyleRule::~CFX_CSSStyleRule() {}
+CFX_CSSStyleRule::~CFX_CSSStyleRule() = default;
 
 size_t CFX_CSSStyleRule::CountSelectorLists() const {
   return m_ppSelector.size();
diff --git a/core/fxcrt/css/cfx_cssvaluelist.cpp b/core/fxcrt/css/cfx_cssvaluelist.cpp
index b96f165..3a8821a 100644
--- a/core/fxcrt/css/cfx_cssvaluelist.cpp
+++ b/core/fxcrt/css/cfx_cssvaluelist.cpp
@@ -13,7 +13,7 @@
 CFX_CSSValueList::CFX_CSSValueList(std::vector<RetainPtr<CFX_CSSValue>>& list)
     : CFX_CSSValue(CFX_CSSPrimitiveType::List), m_ppList(std::move(list)) {}
 
-CFX_CSSValueList::~CFX_CSSValueList() {}
+CFX_CSSValueList::~CFX_CSSValueList() = default;
 
 int32_t CFX_CSSValueList::CountValues() const {
   return m_ppList.size();
diff --git a/core/fxcrt/fx_bidi.cpp b/core/fxcrt/fx_bidi.cpp
index c5fb5c6..33f181d 100644
--- a/core/fxcrt/fx_bidi.cpp
+++ b/core/fxcrt/fx_bidi.cpp
@@ -74,7 +74,7 @@
     SetOverallDirectionRight();
 }
 
-CFX_BidiString::~CFX_BidiString() {}
+CFX_BidiString::~CFX_BidiString() = default;
 
 CFX_BidiChar::Direction CFX_BidiString::OverallDirection() const {
   ASSERT(m_eOverallDirection != CFX_BidiChar::NEUTRAL);
diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp
index 10a31c3..2855cc9 100644
--- a/core/fxcrt/widestring.cpp
+++ b/core/fxcrt/widestring.cpp
@@ -383,7 +383,7 @@
   }
 }
 
-WideString::~WideString() {}
+WideString::~WideString() = default;
 
 WideString& WideString::operator=(const wchar_t* str) {
   if (!str || !str[0])
diff --git a/core/fxge/agg/fx_agg_driver.cpp b/core/fxge/agg/fx_agg_driver.cpp
index b7da517..c92c6be 100644
--- a/core/fxge/agg/fx_agg_driver.cpp
+++ b/core/fxge/agg/fx_agg_driver.cpp
@@ -1589,7 +1589,7 @@
 #ifndef _SKIA_SUPPORT_
 CFX_DefaultRenderDevice::CFX_DefaultRenderDevice() {}
 
-CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() {}
+CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() = default;
 
 bool CFX_DefaultRenderDevice::Attach(
     const RetainPtr<CFX_DIBitmap>& pBitmap,
diff --git a/core/fxge/android/cfpf_skiadevicemodule.cpp b/core/fxge/android/cfpf_skiadevicemodule.cpp
index ff68b9f..a0402b9 100644
--- a/core/fxge/android/cfpf_skiadevicemodule.cpp
+++ b/core/fxge/android/cfpf_skiadevicemodule.cpp
@@ -24,7 +24,7 @@
 
 CFPF_SkiaDeviceModule::CFPF_SkiaDeviceModule() {}
 
-CFPF_SkiaDeviceModule::~CFPF_SkiaDeviceModule() {}
+CFPF_SkiaDeviceModule::~CFPF_SkiaDeviceModule() = default;
 
 void CFPF_SkiaDeviceModule::Destroy() {
   delete gs_pPFModule;
diff --git a/core/fxge/android/cfx_androidfontinfo.cpp b/core/fxge/android/cfx_androidfontinfo.cpp
index 206003d..fce274c 100644
--- a/core/fxge/android/cfx_androidfontinfo.cpp
+++ b/core/fxge/android/cfx_androidfontinfo.cpp
@@ -13,7 +13,7 @@
 #include "core/fxge/fx_font.h"
 
 CFX_AndroidFontInfo::CFX_AndroidFontInfo() : m_pFontMgr(nullptr) {}
-CFX_AndroidFontInfo::~CFX_AndroidFontInfo() {}
+CFX_AndroidFontInfo::~CFX_AndroidFontInfo() = default;
 bool CFX_AndroidFontInfo::Init(CFPF_SkiaFontMgr* pFontMgr) {
   if (!pFontMgr)
     return false;
diff --git a/core/fxge/cfx_unicodeencoding.cpp b/core/fxge/cfx_unicodeencoding.cpp
index 6673fca..d87b0b6 100644
--- a/core/fxge/cfx_unicodeencoding.cpp
+++ b/core/fxge/cfx_unicodeencoding.cpp
@@ -14,7 +14,7 @@
 
 CFX_UnicodeEncoding::CFX_UnicodeEncoding(CFX_Font* pFont) : m_pFont(pFont) {}
 
-CFX_UnicodeEncoding::~CFX_UnicodeEncoding() {}
+CFX_UnicodeEncoding::~CFX_UnicodeEncoding() = default;
 
 uint32_t CFX_UnicodeEncoding::GlyphFromCharCode(uint32_t charcode) {
   FXFT_FaceRec* face = m_pFont->GetFaceRec();
diff --git a/core/fxge/cfx_unicodeencodingex.cpp b/core/fxge/cfx_unicodeencodingex.cpp
index 3e187e8..e32077d 100644
--- a/core/fxge/cfx_unicodeencodingex.cpp
+++ b/core/fxge/cfx_unicodeencodingex.cpp
@@ -55,7 +55,7 @@
                                              uint32_t EncodingID)
     : CFX_UnicodeEncoding(pFont), m_nEncodingID(EncodingID) {}
 
-CFX_UnicodeEncodingEx::~CFX_UnicodeEncodingEx() {}
+CFX_UnicodeEncodingEx::~CFX_UnicodeEncodingEx() = default;
 
 uint32_t CFX_UnicodeEncodingEx::GlyphFromCharCode(uint32_t charcode) {
   FXFT_FaceRec* face = m_pFont->GetFaceRec();
diff --git a/core/fxge/dib/cfx_bitmapstorer.cpp b/core/fxge/dib/cfx_bitmapstorer.cpp
index 97ddf6f..7e9bd14 100644
--- a/core/fxge/dib/cfx_bitmapstorer.cpp
+++ b/core/fxge/dib/cfx_bitmapstorer.cpp
@@ -12,7 +12,7 @@
 
 CFX_BitmapStorer::CFX_BitmapStorer() {}
 
-CFX_BitmapStorer::~CFX_BitmapStorer() {}
+CFX_BitmapStorer::~CFX_BitmapStorer() = default;
 
 RetainPtr<CFX_DIBitmap> CFX_BitmapStorer::Detach() {
   return std::move(m_pBitmap);
diff --git a/core/fxge/dib/cfx_dibbase.cpp b/core/fxge/dib/cfx_dibbase.cpp
index 32a73f0..a2c1a9a 100644
--- a/core/fxge/dib/cfx_dibbase.cpp
+++ b/core/fxge/dib/cfx_dibbase.cpp
@@ -98,7 +98,7 @@
   Obtain_Pal(m_Luts.data(), m_Palette.data(), m_lut);
 }
 
-CFX_Palette::~CFX_Palette() {}
+CFX_Palette::~CFX_Palette() = default;
 
 void ConvertBuffer_1bppMask2Gray(uint8_t* dest_buf,
                                  int dest_pitch,
@@ -720,7 +720,7 @@
 CFX_DIBBase::CFX_DIBBase()
     : m_Width(0), m_Height(0), m_bpp(0), m_AlphaFlag(0), m_Pitch(0) {}
 
-CFX_DIBBase::~CFX_DIBBase() {}
+CFX_DIBBase::~CFX_DIBBase() = default;
 
 uint8_t* CFX_DIBBase::GetBuffer() const {
   return nullptr;
diff --git a/core/fxge/dib/cfx_dibextractor.cpp b/core/fxge/dib/cfx_dibextractor.cpp
index f6f31e8..21e73b9 100644
--- a/core/fxge/dib/cfx_dibextractor.cpp
+++ b/core/fxge/dib/cfx_dibextractor.cpp
@@ -25,4 +25,4 @@
   m_pBitmap->SetAlphaMask(pOldSrc->m_pAlphaMask, nullptr);
 }
 
-CFX_DIBExtractor::~CFX_DIBExtractor() {}
+CFX_DIBExtractor::~CFX_DIBExtractor() = default;
diff --git a/core/fxge/dib/cfx_dibitmap.cpp b/core/fxge/dib/cfx_dibitmap.cpp
index 047d8ae..def197a 100644
--- a/core/fxge/dib/cfx_dibitmap.cpp
+++ b/core/fxge/dib/cfx_dibitmap.cpp
@@ -98,7 +98,7 @@
   return true;
 }
 
-CFX_DIBitmap::~CFX_DIBitmap() {}
+CFX_DIBitmap::~CFX_DIBitmap() = default;
 
 uint8_t* CFX_DIBitmap::GetBuffer() const {
   return m_pBuffer.Get();
diff --git a/core/fxge/dib/cfx_imagerenderer.cpp b/core/fxge/dib/cfx_imagerenderer.cpp
index 39d46106..8cbf880 100644
--- a/core/fxge/dib/cfx_imagerenderer.cpp
+++ b/core/fxge/dib/cfx_imagerenderer.cpp
@@ -82,7 +82,7 @@
   m_Stretcher->Start();
 }
 
-CFX_ImageRenderer::~CFX_ImageRenderer() {}
+CFX_ImageRenderer::~CFX_ImageRenderer() = default;
 
 bool CFX_ImageRenderer::Continue(PauseIndicatorIface* pPause) {
   if (m_Status == 1)
diff --git a/core/fxge/dib/cfx_imagestretcher.cpp b/core/fxge/dib/cfx_imagestretcher.cpp
index 40c8061..414e3b5 100644
--- a/core/fxge/dib/cfx_imagestretcher.cpp
+++ b/core/fxge/dib/cfx_imagestretcher.cpp
@@ -60,7 +60,7 @@
   ASSERT(m_ClipRect.Valid());
 }
 
-CFX_ImageStretcher::~CFX_ImageStretcher() {}
+CFX_ImageStretcher::~CFX_ImageStretcher() = default;
 
 bool CFX_ImageStretcher::Start() {
   if (m_DestWidth == 0 || m_DestHeight == 0)
diff --git a/core/fxge/dib/cstretchengine.cpp b/core/fxge/dib/cstretchengine.cpp
index 8636430..f794261 100644
--- a/core/fxge/dib/cstretchengine.cpp
+++ b/core/fxge/dib/cstretchengine.cpp
@@ -306,7 +306,7 @@
   }
 }
 
-CStretchEngine::~CStretchEngine() {}
+CStretchEngine::~CStretchEngine() = default;
 
 bool CStretchEngine::Continue(PauseIndicatorIface* pPause) {
   while (m_State == State::kHorizontal) {
diff --git a/core/fxge/renderdevicedriver_iface.cpp b/core/fxge/renderdevicedriver_iface.cpp
index f8fcccf..699009b 100644
--- a/core/fxge/renderdevicedriver_iface.cpp
+++ b/core/fxge/renderdevicedriver_iface.cpp
@@ -10,7 +10,7 @@
 #include "core/fxge/cfx_pathdata.h"
 #include "core/fxge/dib/cfx_dibitmap.h"
 
-RenderDeviceDriverIface::~RenderDeviceDriverIface() {}
+RenderDeviceDriverIface::~RenderDeviceDriverIface() = default;
 
 bool RenderDeviceDriverIface::StartRendering() {
   return true;
diff --git a/fpdfsdk/cpdfsdk_annotiteration.cpp b/fpdfsdk/cpdfsdk_annotiteration.cpp
index d256950..fa9a5ea 100644
--- a/fpdfsdk/cpdfsdk_annotiteration.cpp
+++ b/fpdfsdk/cpdfsdk_annotiteration.cpp
@@ -37,4 +37,4 @@
     m_List.emplace_back(pAnnot);
 }
 
-CPDFSDK_AnnotIteration::~CPDFSDK_AnnotIteration() {}
+CPDFSDK_AnnotIteration::~CPDFSDK_AnnotIteration() = default;
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
index ad445f2..0c94dc1 100644
--- a/fpdfsdk/cpdfsdk_appstream.cpp
+++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -1145,7 +1145,7 @@
                                      CPDF_Dictionary* dict)
     : widget_(widget), dict_(dict) {}
 
-CPDFSDK_AppStream::~CPDFSDK_AppStream() {}
+CPDFSDK_AppStream::~CPDFSDK_AppStream() = default;
 
 void CPDFSDK_AppStream::SetAsPushButton() {
   CPDF_FormControl* pControl = widget_->GetFormControl();
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp
index 524eccd..4609f28 100644
--- a/fpdfsdk/cpdfsdk_baannot.cpp
+++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -25,7 +25,7 @@
                                  CPDFSDK_PageView* pPageView)
     : CPDFSDK_Annot(pPageView), m_pAnnot(pAnnot) {}
 
-CPDFSDK_BAAnnot::~CPDFSDK_BAAnnot() {}
+CPDFSDK_BAAnnot::~CPDFSDK_BAAnnot() = default;
 
 CPDFSDK_BAAnnot* CPDFSDK_BAAnnot::AsBAAnnot() {
   return this;
diff --git a/fpdfsdk/cpdfsdk_baannothandler.cpp b/fpdfsdk/cpdfsdk_baannothandler.cpp
index 49daae8..5566e99 100644
--- a/fpdfsdk/cpdfsdk_baannothandler.cpp
+++ b/fpdfsdk/cpdfsdk_baannothandler.cpp
@@ -41,7 +41,7 @@
 
 CPDFSDK_BAAnnotHandler::CPDFSDK_BAAnnotHandler() {}
 
-CPDFSDK_BAAnnotHandler::~CPDFSDK_BAAnnotHandler() {}
+CPDFSDK_BAAnnotHandler::~CPDFSDK_BAAnnotHandler() = default;
 
 void CPDFSDK_BAAnnotHandler::SetFormFillEnvironment(
     CPDFSDK_FormFillEnvironment* pFormFillEnv) {
diff --git a/fpdfsdk/cpdfsdk_filewriteadapter.cpp b/fpdfsdk/cpdfsdk_filewriteadapter.cpp
index 39a69a5..2583e68 100644
--- a/fpdfsdk/cpdfsdk_filewriteadapter.cpp
+++ b/fpdfsdk/cpdfsdk_filewriteadapter.cpp
@@ -11,7 +11,7 @@
   ASSERT(file_write_);
 }
 
-CPDFSDK_FileWriteAdapter::~CPDFSDK_FileWriteAdapter() {}
+CPDFSDK_FileWriteAdapter::~CPDFSDK_FileWriteAdapter() = default;
 
 bool CPDFSDK_FileWriteAdapter::WriteBlock(const void* data, size_t size) {
   return file_write_->WriteBlock(file_write_.Get(), data, size) != 0;
diff --git a/fpdfsdk/formfiller/cffl_button.cpp b/fpdfsdk/formfiller/cffl_button.cpp
index 1ab48a1..fcc6154 100644
--- a/fpdfsdk/formfiller/cffl_button.cpp
+++ b/fpdfsdk/formfiller/cffl_button.cpp
@@ -14,7 +14,7 @@
       m_bMouseIn(false),
       m_bMouseDown(false) {}
 
-CFFL_Button::~CFFL_Button() {}
+CFFL_Button::~CFFL_Button() = default;
 
 void CFFL_Button::OnMouseEnter(CPDFSDK_PageView* pPageView) {
   m_bMouseIn = true;
diff --git a/fpdfsdk/formfiller/cffl_checkbox.cpp b/fpdfsdk/formfiller/cffl_checkbox.cpp
index 4cb4a02..c8f1148 100644
--- a/fpdfsdk/formfiller/cffl_checkbox.cpp
+++ b/fpdfsdk/formfiller/cffl_checkbox.cpp
@@ -19,7 +19,7 @@
                              CPDFSDK_Widget* pWidget)
     : CFFL_Button(pApp, pWidget) {}
 
-CFFL_CheckBox::~CFFL_CheckBox() {}
+CFFL_CheckBox::~CFFL_CheckBox() = default;
 
 std::unique_ptr<CPWL_Wnd> CFFL_CheckBox::NewPWLWindow(
     const CPWL_Wnd::CreateParams& cp,
diff --git a/fpdfsdk/formfiller/cffl_radiobutton.cpp b/fpdfsdk/formfiller/cffl_radiobutton.cpp
index 670197e..0d167b4 100644
--- a/fpdfsdk/formfiller/cffl_radiobutton.cpp
+++ b/fpdfsdk/formfiller/cffl_radiobutton.cpp
@@ -19,7 +19,7 @@
                                    CPDFSDK_Widget* pWidget)
     : CFFL_Button(pApp, pWidget) {}
 
-CFFL_RadioButton::~CFFL_RadioButton() {}
+CFFL_RadioButton::~CFFL_RadioButton() = default;
 
 std::unique_ptr<CPWL_Wnd> CFFL_RadioButton::NewPWLWindow(
     const CPWL_Wnd::CreateParams& cp,
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
index e6ae514..6f26acb 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
@@ -48,7 +48,7 @@
   ASSERT(m_pContext);
 }
 
-CPDFXFA_DocEnvironment::~CPDFXFA_DocEnvironment() {}
+CPDFXFA_DocEnvironment::~CPDFXFA_DocEnvironment() = default;
 
 void CPDFXFA_DocEnvironment::SetChangeMark(CXFA_FFDoc* hDoc) {
   if (hDoc == m_pContext->GetXFADoc() && m_pContext->GetFormFillEnv())
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp
index 3f9c04b..6d0ed20 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp
@@ -56,7 +56,7 @@
     CPDF_VariableText::Iterator* pVTIterator)
     : m_pEdit(pEdit), m_pVTIterator(pVTIterator) {}
 
-CPWL_EditImpl_Iterator::~CPWL_EditImpl_Iterator() {}
+CPWL_EditImpl_Iterator::~CPWL_EditImpl_Iterator() = default;
 
 bool CPWL_EditImpl_Iterator::NextWord() {
   return m_pVTIterator->NextWord();
@@ -103,7 +103,7 @@
   ASSERT(m_pFontMap);
 }
 
-CPWL_EditImpl_Provider::~CPWL_EditImpl_Provider() {}
+CPWL_EditImpl_Provider::~CPWL_EditImpl_Provider() = default;
 
 IPVT_FontMap* CPWL_EditImpl_Provider::GetFontMap() const {
   return m_pFontMap;
@@ -151,7 +151,7 @@
 
 CPWL_EditImpl_Refresh::CPWL_EditImpl_Refresh() {}
 
-CPWL_EditImpl_Refresh::~CPWL_EditImpl_Refresh() {}
+CPWL_EditImpl_Refresh::~CPWL_EditImpl_Refresh() = default;
 
 void CPWL_EditImpl_Refresh::BeginRefresh() {
   m_OldLineRects = std::move(m_NewLineRects);
@@ -192,7 +192,7 @@
 CPWL_EditImpl_Undo::CPWL_EditImpl_Undo()
     : m_nCurUndoPos(0), m_bWorking(false) {}
 
-CPWL_EditImpl_Undo::~CPWL_EditImpl_Undo() {}
+CPWL_EditImpl_Undo::~CPWL_EditImpl_Undo() = default;
 
 bool CPWL_EditImpl_Undo::CanUndo() const {
   return m_nCurUndoPos > 0;
@@ -266,7 +266,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_InsertWord::~CFXEU_InsertWord() {}
+CFXEU_InsertWord::~CFXEU_InsertWord() = default;
 
 int CFXEU_InsertWord::Redo() {
   m_pEdit->SelectNone();
@@ -289,7 +289,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_InsertReturn::~CFXEU_InsertReturn() {}
+CFXEU_InsertReturn::~CFXEU_InsertReturn() = default;
 
 int CFXEU_InsertReturn::Redo() {
   m_pEdit->SelectNone();
@@ -311,7 +311,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_ReplaceSelection::~CFXEU_ReplaceSelection() {}
+CFXEU_ReplaceSelection::~CFXEU_ReplaceSelection() = default;
 
 int CFXEU_ReplaceSelection::Redo() {
   m_pEdit->SelectNone();
@@ -343,7 +343,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_Backspace::~CFXEU_Backspace() {}
+CFXEU_Backspace::~CFXEU_Backspace() = default;
 
 int CFXEU_Backspace::Redo() {
   m_pEdit->SelectNone();
@@ -377,7 +377,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_Delete::~CFXEU_Delete() {}
+CFXEU_Delete::~CFXEU_Delete() = default;
 
 int CFXEU_Delete::Redo() {
   m_pEdit->SelectNone();
@@ -403,7 +403,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_Clear::~CFXEU_Clear() {}
+CFXEU_Clear::~CFXEU_Clear() = default;
 
 int CFXEU_Clear::Redo() {
   m_pEdit->SelectNone();
@@ -433,7 +433,7 @@
   ASSERT(m_pEdit);
 }
 
-CFXEU_InsertText::~CFXEU_InsertText() {}
+CFXEU_InsertText::~CFXEU_InsertText() = default;
 
 int CFXEU_InsertText::Redo() {
   m_pEdit->SelectNone();
@@ -572,7 +572,7 @@
       m_bEnableRefresh(true),
       m_bEnableUndo(true) {}
 
-CPWL_EditImpl::~CPWL_EditImpl() {}
+CPWL_EditImpl::~CPWL_EditImpl() = default;
 
 void CPWL_EditImpl::Initialize() {
   m_pVT->Initialize();
diff --git a/fpdfsdk/pwl/cpwl_list_box.cpp b/fpdfsdk/pwl/cpwl_list_box.cpp
index f00a0ad..9e3a793 100644
--- a/fpdfsdk/pwl/cpwl_list_box.cpp
+++ b/fpdfsdk/pwl/cpwl_list_box.cpp
@@ -22,7 +22,7 @@
   ASSERT(m_pList);
 }
 
-CPWL_List_Notify::~CPWL_List_Notify() {}
+CPWL_List_Notify::~CPWL_List_Notify() = default;
 
 void CPWL_List_Notify::IOnSetScrollInfoY(float fPlateMin,
                                          float fPlateMax,
diff --git a/fpdfsdk/pwl/cpwl_list_impl.cpp b/fpdfsdk/pwl/cpwl_list_impl.cpp
index dd636ac..f8784f4 100644
--- a/fpdfsdk/pwl/cpwl_list_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_list_impl.cpp
@@ -52,7 +52,7 @@
 
 CPLST_Select::CPLST_Select() {}
 
-CPLST_Select::~CPLST_Select() {}
+CPLST_Select::~CPLST_Select() = default;
 
 void CPLST_Select::Add(int32_t nItemIndex) {
   m_Items[nItemIndex] = SELECTING;
diff --git a/fxbarcode/cbc_codebase.cpp b/fxbarcode/cbc_codebase.cpp
index 305d09b..bdd2af6 100644
--- a/fxbarcode/cbc_codebase.cpp
+++ b/fxbarcode/cbc_codebase.cpp
@@ -28,7 +28,7 @@
 CBC_CodeBase::CBC_CodeBase(std::unique_ptr<CBC_Writer> pWriter)
     : m_pBCWriter(std::move(pWriter)) {}
 
-CBC_CodeBase::~CBC_CodeBase() {}
+CBC_CodeBase::~CBC_CodeBase() = default;
 
 bool CBC_CodeBase::SetTextLocation(BC_TEXT_LOC location) {
   return m_pBCWriter->SetTextLocation(location);
diff --git a/fxbarcode/cbc_pdf417i.cpp b/fxbarcode/cbc_pdf417i.cpp
index 771cad3..34e1418 100644
--- a/fxbarcode/cbc_pdf417i.cpp
+++ b/fxbarcode/cbc_pdf417i.cpp
@@ -38,7 +38,7 @@
 CBC_PDF417I::CBC_PDF417I()
     : CBC_CodeBase(std::make_unique<CBC_PDF417Writer>()) {}
 
-CBC_PDF417I::~CBC_PDF417I() {}
+CBC_PDF417I::~CBC_PDF417I() = default;
 
 bool CBC_PDF417I::Encode(WideStringView contents) {
   if (contents.GetLength() > kMaxPDF417InputLengthBytes)
diff --git a/fxbarcode/cfx_barcode.cpp b/fxbarcode/cfx_barcode.cpp
index f3ac26c..28b6d42 100644
--- a/fxbarcode/cfx_barcode.cpp
+++ b/fxbarcode/cfx_barcode.cpp
@@ -57,7 +57,7 @@
 
 CFX_Barcode::CFX_Barcode() {}
 
-CFX_Barcode::~CFX_Barcode() {}
+CFX_Barcode::~CFX_Barcode() = default;
 
 std::unique_ptr<CFX_Barcode> CFX_Barcode::Create(BC_TYPE type) {
   auto barcode = pdfium::WrapUnique(new CFX_Barcode());  // Private ctor.
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp
index 1261927..9102126 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomon.cpp
@@ -34,7 +34,7 @@
       m_field.Get(), std::vector<int32_t>{1}));
 }
 
-CBC_ReedSolomonEncoder::~CBC_ReedSolomonEncoder() {}
+CBC_ReedSolomonEncoder::~CBC_ReedSolomonEncoder() = default;
 
 CBC_ReedSolomonGF256Poly* CBC_ReedSolomonEncoder::BuildGenerator(
     size_t degree) {
diff --git a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
index 433418b..e864f92 100644
--- a/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
+++ b/fxbarcode/common/reedsolomon/BC_ReedSolomonGF256.cpp
@@ -48,7 +48,7 @@
       std::make_unique<CBC_ReedSolomonGF256Poly>(this, std::vector<int32_t>{1});
 }
 
-CBC_ReedSolomonGF256::~CBC_ReedSolomonGF256() {}
+CBC_ReedSolomonGF256::~CBC_ReedSolomonGF256() = default;
 
 std::unique_ptr<CBC_ReedSolomonGF256Poly> CBC_ReedSolomonGF256::BuildMonomial(
     int32_t degree,
diff --git a/fxbarcode/datamatrix/BC_DefaultPlacement.cpp b/fxbarcode/datamatrix/BC_DefaultPlacement.cpp
index aedd90c..c307a9d 100644
--- a/fxbarcode/datamatrix/BC_DefaultPlacement.cpp
+++ b/fxbarcode/datamatrix/BC_DefaultPlacement.cpp
@@ -38,7 +38,7 @@
   }
 }
 
-CBC_DefaultPlacement::~CBC_DefaultPlacement() {}
+CBC_DefaultPlacement::~CBC_DefaultPlacement() = default;
 
 int32_t CBC_DefaultPlacement::getNumrows() {
   return m_numrows;
diff --git a/fxbarcode/datamatrix/BC_Encoder.cpp b/fxbarcode/datamatrix/BC_Encoder.cpp
index 9403904..5f5c52d 100644
--- a/fxbarcode/datamatrix/BC_Encoder.cpp
+++ b/fxbarcode/datamatrix/BC_Encoder.cpp
@@ -7,4 +7,4 @@
 #include "fxbarcode/datamatrix/BC_Encoder.h"
 
 CBC_Encoder::CBC_Encoder() {}
-CBC_Encoder::~CBC_Encoder() {}
+CBC_Encoder::~CBC_Encoder() = default;
diff --git a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp
index 67a302c..7955d34 100644
--- a/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp
+++ b/fxbarcode/pdf417/BC_PDF417BarcodeMatrix.cpp
@@ -30,7 +30,7 @@
     m_matrix[i] = std::make_unique<CBC_BarcodeRow>(m_width);
 }
 
-CBC_BarcodeMatrix::~CBC_BarcodeMatrix() {}
+CBC_BarcodeMatrix::~CBC_BarcodeMatrix() = default;
 
 std::vector<uint8_t, FxAllocAllocator<uint8_t>>
 CBC_BarcodeMatrix::toBitArray() {
diff --git a/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp b/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp
index eb425a9..bb5b17e 100644
--- a/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp
+++ b/fxbarcode/pdf417/BC_PDF417BarcodeRow.cpp
@@ -27,7 +27,7 @@
 CBC_BarcodeRow::CBC_BarcodeRow(size_t width)
     : m_row(width), m_currentLocation(0) {}
 
-CBC_BarcodeRow::~CBC_BarcodeRow() {}
+CBC_BarcodeRow::~CBC_BarcodeRow() = default;
 
 void CBC_BarcodeRow::addBar(bool black, int32_t width) {
   std::fill_n(m_row.begin() + m_currentLocation, width, black ? 1 : 0);
diff --git a/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp b/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp
index 28f4688..6a05096 100644
--- a/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp
+++ b/fxbarcode/qrcode/BC_QRCoderECBlocks.cpp
@@ -27,7 +27,7 @@
 CBC_QRCoderECBlocks::CBC_QRCoderECBlocks(const CBC_QRCoderECBlockData& data)
     : m_data(data) {}
 
-CBC_QRCoderECBlocks::~CBC_QRCoderECBlocks() {}
+CBC_QRCoderECBlocks::~CBC_QRCoderECBlocks() = default;
 
 int32_t CBC_QRCoderECBlocks::GetECCodeWordsPerBlock() const {
   return m_data.ecCodeWordsPerBlock;
diff --git a/fxjs/cfxjs_engine.cpp b/fxjs/cfxjs_engine.cpp
index 0216b3f..270d3ba 100644
--- a/fxjs/cfxjs_engine.cpp
+++ b/fxjs/cfxjs_engine.cpp
@@ -307,7 +307,7 @@
   return g_isolate_ref_count;
 }
 
-FXJS_PerIsolateData::~FXJS_PerIsolateData() {}
+FXJS_PerIsolateData::~FXJS_PerIsolateData() = default;
 
 // static
 void FXJS_PerIsolateData::SetUp(v8::Isolate* pIsolate) {
diff --git a/fxjs/cjs_delaydata.cpp b/fxjs/cjs_delaydata.cpp
index d7e1f78..0aab785 100644
--- a/fxjs/cjs_delaydata.cpp
+++ b/fxjs/cjs_delaydata.cpp
@@ -9,4 +9,4 @@
 CJS_DelayData::CJS_DelayData(FIELD_PROP prop, int idx, const WideString& name)
     : eProp(prop), nControlIndex(idx), sFieldName(name) {}
 
-CJS_DelayData::~CJS_DelayData() {}
+CJS_DelayData::~CJS_DelayData() = default;
diff --git a/fxjs/cjs_object.cpp b/fxjs/cjs_object.cpp
index e13a509..b65c4fc 100644
--- a/fxjs/cjs_object.cpp
+++ b/fxjs/cjs_object.cpp
@@ -42,4 +42,4 @@
       m_pV8Object(GetIsolate(), pObject),
       m_pRuntime(pRuntime) {}
 
-CJS_Object::~CJS_Object() {}
+CJS_Object::~CJS_Object() = default;
diff --git a/fxjs/xfa/cfxjse_class.cpp b/fxjs/xfa/cfxjse_class.cpp
index 56f9458..411542a 100644
--- a/fxjs/xfa/cfxjse_class.cpp
+++ b/fxjs/xfa/cfxjse_class.cpp
@@ -321,4 +321,4 @@
 
 CFXJSE_Class::CFXJSE_Class(CFXJSE_Context* lpContext) : m_pContext(lpContext) {}
 
-CFXJSE_Class::~CFXJSE_Class() {}
+CFXJSE_Class::~CFXJSE_Class() = default;
diff --git a/fxjs/xfa/cfxjse_context.cpp b/fxjs/xfa/cfxjse_context.cpp
index e72cb2d..134154e 100644
--- a/fxjs/xfa/cfxjse_context.cpp
+++ b/fxjs/xfa/cfxjse_context.cpp
@@ -209,7 +209,7 @@
 
 CFXJSE_Context::CFXJSE_Context(v8::Isolate* pIsolate) : m_pIsolate(pIsolate) {}
 
-CFXJSE_Context::~CFXJSE_Context() {}
+CFXJSE_Context::~CFXJSE_Context() = default;
 
 std::unique_ptr<CFXJSE_Value> CFXJSE_Context::GetGlobalObject() {
   auto pValue = std::make_unique<CFXJSE_Value>(GetIsolate());
diff --git a/fxjs/xfa/cfxjse_value.cpp b/fxjs/xfa/cfxjse_value.cpp
index e8705e8..66ea236 100644
--- a/fxjs/xfa/cfxjse_value.cpp
+++ b/fxjs/xfa/cfxjse_value.cpp
@@ -72,7 +72,7 @@
   ForceSetValue(value);
 }
 
-CFXJSE_Value::~CFXJSE_Value() {}
+CFXJSE_Value::~CFXJSE_Value() = default;
 
 CFXJSE_HostObject* CFXJSE_Value::ToHostObject() const {
   CFXJSE_ScopeUtil_IsolateHandleRootContext scope(GetIsolate());
diff --git a/fxjs/xfa/cjx_container.cpp b/fxjs/xfa/cjx_container.cpp
index 44b1ff8..20220be 100644
--- a/fxjs/xfa/cjx_container.cpp
+++ b/fxjs/xfa/cjx_container.cpp
@@ -23,7 +23,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Container::~CJX_Container() {}
+CJX_Container::~CJX_Container() = default;
 
 bool CJX_Container::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_datawindow.cpp b/fxjs/xfa/cjx_datawindow.cpp
index d165140..9a189ec 100644
--- a/fxjs/xfa/cjx_datawindow.cpp
+++ b/fxjs/xfa/cjx_datawindow.cpp
@@ -22,7 +22,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_DataWindow::~CJX_DataWindow() {}
+CJX_DataWindow::~CJX_DataWindow() = default;
 
 bool CJX_DataWindow::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_delta.cpp b/fxjs/xfa/cjx_delta.cpp
index 3ad20a6..9d17eaa 100644
--- a/fxjs/xfa/cjx_delta.cpp
+++ b/fxjs/xfa/cjx_delta.cpp
@@ -18,7 +18,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Delta::~CJX_Delta() {}
+CJX_Delta::~CJX_Delta() = default;
 
 bool CJX_Delta::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_desc.cpp b/fxjs/xfa/cjx_desc.cpp
index 2bbff2b..01ab555 100644
--- a/fxjs/xfa/cjx_desc.cpp
+++ b/fxjs/xfa/cjx_desc.cpp
@@ -19,7 +19,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Desc::~CJX_Desc() {}
+CJX_Desc::~CJX_Desc() = default;
 
 bool CJX_Desc::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp
index d037eb7..a4112ac 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.cpp
+++ b/fxjs/xfa/cjx_eventpseudomodel.cpp
@@ -53,7 +53,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_EventPseudoModel::~CJX_EventPseudoModel() {}
+CJX_EventPseudoModel::~CJX_EventPseudoModel() = default;
 
 bool CJX_EventPseudoModel::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_exclgroup.cpp b/fxjs/xfa/cjx_exclgroup.cpp
index 00bf539..7f17bc8 100644
--- a/fxjs/xfa/cjx_exclgroup.cpp
+++ b/fxjs/xfa/cjx_exclgroup.cpp
@@ -28,7 +28,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_ExclGroup::~CJX_ExclGroup() {}
+CJX_ExclGroup::~CJX_ExclGroup() = default;
 
 bool CJX_ExclGroup::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_field.cpp b/fxjs/xfa/cjx_field.cpp
index ef334a3..4e7bc44 100644
--- a/fxjs/xfa/cjx_field.cpp
+++ b/fxjs/xfa/cjx_field.cpp
@@ -37,7 +37,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Field::~CJX_Field() {}
+CJX_Field::~CJX_Field() = default;
 
 bool CJX_Field::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_form.cpp b/fxjs/xfa/cjx_form.cpp
index 07e8602..f2b3a7d 100644
--- a/fxjs/xfa/cjx_form.cpp
+++ b/fxjs/xfa/cjx_form.cpp
@@ -29,7 +29,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Form::~CJX_Form() {}
+CJX_Form::~CJX_Form() = default;
 
 bool CJX_Form::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp
index c45495c..1263a14 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.cpp
+++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -70,7 +70,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_HostPseudoModel::~CJX_HostPseudoModel() {}
+CJX_HostPseudoModel::~CJX_HostPseudoModel() = default;
 
 bool CJX_HostPseudoModel::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_instancemanager.cpp b/fxjs/xfa/cjx_instancemanager.cpp
index 160c4a5..095654d 100644
--- a/fxjs/xfa/cjx_instancemanager.cpp
+++ b/fxjs/xfa/cjx_instancemanager.cpp
@@ -30,7 +30,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_InstanceManager::~CJX_InstanceManager() {}
+CJX_InstanceManager::~CJX_InstanceManager() = default;
 
 bool CJX_InstanceManager::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp
index 9d11113..8c9216e 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.cpp
+++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp
@@ -56,7 +56,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_LayoutPseudoModel::~CJX_LayoutPseudoModel() {}
+CJX_LayoutPseudoModel::~CJX_LayoutPseudoModel() = default;
 
 bool CJX_LayoutPseudoModel::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_list.cpp b/fxjs/xfa/cjx_list.cpp
index 7c0cf23..23d7e0d 100644
--- a/fxjs/xfa/cjx_list.cpp
+++ b/fxjs/xfa/cjx_list.cpp
@@ -26,7 +26,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_List::~CJX_List() {}
+CJX_List::~CJX_List() = default;
 
 bool CJX_List::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_logpseudomodel.cpp b/fxjs/xfa/cjx_logpseudomodel.cpp
index 8cb9ee7..9ad5612 100644
--- a/fxjs/xfa/cjx_logpseudomodel.cpp
+++ b/fxjs/xfa/cjx_logpseudomodel.cpp
@@ -23,7 +23,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_LogPseudoModel::~CJX_LogPseudoModel() {}
+CJX_LogPseudoModel::~CJX_LogPseudoModel() = default;
 
 bool CJX_LogPseudoModel::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_manifest.cpp b/fxjs/xfa/cjx_manifest.cpp
index f94232e..22b0762 100644
--- a/fxjs/xfa/cjx_manifest.cpp
+++ b/fxjs/xfa/cjx_manifest.cpp
@@ -20,7 +20,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Manifest::~CJX_Manifest() {}
+CJX_Manifest::~CJX_Manifest() = default;
 
 bool CJX_Manifest::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_model.cpp b/fxjs/xfa/cjx_model.cpp
index 4fa0a2e..ae40531 100644
--- a/fxjs/xfa/cjx_model.cpp
+++ b/fxjs/xfa/cjx_model.cpp
@@ -24,7 +24,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Model::~CJX_Model() {}
+CJX_Model::~CJX_Model() = default;
 
 bool CJX_Model::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_packet.cpp b/fxjs/xfa/cjx_packet.cpp
index 2c8b67d..1200d02 100644
--- a/fxjs/xfa/cjx_packet.cpp
+++ b/fxjs/xfa/cjx_packet.cpp
@@ -27,7 +27,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Packet::~CJX_Packet() {}
+CJX_Packet::~CJX_Packet() = default;
 
 bool CJX_Packet::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_signaturepseudomodel.cpp b/fxjs/xfa/cjx_signaturepseudomodel.cpp
index 97ecd6e..bd06b37 100644
--- a/fxjs/xfa/cjx_signaturepseudomodel.cpp
+++ b/fxjs/xfa/cjx_signaturepseudomodel.cpp
@@ -25,7 +25,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_SignaturePseudoModel::~CJX_SignaturePseudoModel() {}
+CJX_SignaturePseudoModel::~CJX_SignaturePseudoModel() = default;
 
 bool CJX_SignaturePseudoModel::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_source.cpp b/fxjs/xfa/cjx_source.cpp
index f6d3187..0e1aab9 100644
--- a/fxjs/xfa/cjx_source.cpp
+++ b/fxjs/xfa/cjx_source.cpp
@@ -35,7 +35,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Source::~CJX_Source() {}
+CJX_Source::~CJX_Source() = default;
 
 bool CJX_Source::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_subform.cpp b/fxjs/xfa/cjx_subform.cpp
index 8a72b5b..1ea6b56 100644
--- a/fxjs/xfa/cjx_subform.cpp
+++ b/fxjs/xfa/cjx_subform.cpp
@@ -28,7 +28,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Subform::~CJX_Subform() {}
+CJX_Subform::~CJX_Subform() = default;
 
 bool CJX_Subform::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_template.cpp b/fxjs/xfa/cjx_template.cpp
index b3d9d90..95ba486 100644
--- a/fxjs/xfa/cjx_template.cpp
+++ b/fxjs/xfa/cjx_template.cpp
@@ -26,7 +26,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Template::~CJX_Template() {}
+CJX_Template::~CJX_Template() = default;
 
 bool CJX_Template::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_textnode.cpp b/fxjs/xfa/cjx_textnode.cpp
index 756a71d..df6b305 100644
--- a/fxjs/xfa/cjx_textnode.cpp
+++ b/fxjs/xfa/cjx_textnode.cpp
@@ -11,7 +11,7 @@
 
 CJX_TextNode::CJX_TextNode(CXFA_Node* node) : CJX_Node(node) {}
 
-CJX_TextNode::~CJX_TextNode() {}
+CJX_TextNode::~CJX_TextNode() = default;
 
 bool CJX_TextNode::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_tree.cpp b/fxjs/xfa/cjx_tree.cpp
index fe25906..e03fe83 100644
--- a/fxjs/xfa/cjx_tree.cpp
+++ b/fxjs/xfa/cjx_tree.cpp
@@ -27,7 +27,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_Tree::~CJX_Tree() {}
+CJX_Tree::~CJX_Tree() = default;
 
 bool CJX_Tree::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_treelist.cpp b/fxjs/xfa/cjx_treelist.cpp
index 51bbb0a..151db82 100644
--- a/fxjs/xfa/cjx_treelist.cpp
+++ b/fxjs/xfa/cjx_treelist.cpp
@@ -22,7 +22,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_TreeList::~CJX_TreeList() {}
+CJX_TreeList::~CJX_TreeList() = default;
 
 bool CJX_TreeList::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/fxjs/xfa/cjx_wsdlconnection.cpp b/fxjs/xfa/cjx_wsdlconnection.cpp
index 7821232..da05662 100644
--- a/fxjs/xfa/cjx_wsdlconnection.cpp
+++ b/fxjs/xfa/cjx_wsdlconnection.cpp
@@ -21,7 +21,7 @@
   DefineMethods(MethodSpecs);
 }
 
-CJX_WsdlConnection::~CJX_WsdlConnection() {}
+CJX_WsdlConnection::~CJX_WsdlConnection() = default;
 
 bool CJX_WsdlConnection::DynamicTypeIs(TypeTag eType) const {
   return eType == static_type__ || ParentType__::DynamicTypeIs(eType);
diff --git a/testing/fake_file_access.cpp b/testing/fake_file_access.cpp
index 3c236e6..26422ed 100644
--- a/testing/fake_file_access.cpp
+++ b/testing/fake_file_access.cpp
@@ -81,7 +81,7 @@
   ASSERT(file_access_);
 }
 
-FakeFileAccess::~FakeFileAccess() {}
+FakeFileAccess::~FakeFileAccess() = default;
 
 FPDF_BOOL FakeFileAccess::IsDataAvail(size_t offset, size_t size) const {
   return available_data_.Contains(RangeSet::Range(offset, offset + size));
diff --git a/testing/js_embedder_test.cpp b/testing/js_embedder_test.cpp
index 9857007..e2d7423 100644
--- a/testing/js_embedder_test.cpp
+++ b/testing/js_embedder_test.cpp
@@ -9,7 +9,7 @@
 JSEmbedderTest::JSEmbedderTest()
     : m_pArrayBufferAllocator(std::make_unique<CFX_V8ArrayBufferAllocator>()) {}
 
-JSEmbedderTest::~JSEmbedderTest() {}
+JSEmbedderTest::~JSEmbedderTest() = default;
 
 void JSEmbedderTest::SetUp() {
   v8::Isolate::CreateParams params;
diff --git a/testing/range_set.cpp b/testing/range_set.cpp
index 2fc540f..568935d 100644
--- a/testing/range_set.cpp
+++ b/testing/range_set.cpp
@@ -9,7 +9,7 @@
 #include "core/fxcrt/fx_system.h"
 
 RangeSet::RangeSet() {}
-RangeSet::~RangeSet() {}
+RangeSet::~RangeSet() = default;
 
 bool RangeSet::Contains(const Range& range) const {
   if (IsEmptyRange(range))
diff --git a/testing/xfa_js_embedder_test.cpp b/testing/xfa_js_embedder_test.cpp
index 2dd9dc7..f61e002 100644
--- a/testing/xfa_js_embedder_test.cpp
+++ b/testing/xfa_js_embedder_test.cpp
@@ -16,7 +16,7 @@
 XFAJSEmbedderTest::XFAJSEmbedderTest()
     : array_buffer_allocator_(std::make_unique<CFX_V8ArrayBufferAllocator>()) {}
 
-XFAJSEmbedderTest::~XFAJSEmbedderTest() {}
+XFAJSEmbedderTest::~XFAJSEmbedderTest() = default;
 
 void XFAJSEmbedderTest::SetUp() {
   v8::Isolate::CreateParams params;
diff --git a/xfa/fde/cfde_texteditengine.cpp b/xfa/fde/cfde_texteditengine.cpp
index ec56454..511fc50 100644
--- a/xfa/fde/cfde_texteditengine.cpp
+++ b/xfa/fde/cfde_texteditengine.cpp
@@ -154,7 +154,7 @@
   text_break_.SetTabWidth(36);
 }
 
-CFDE_TextEditEngine::~CFDE_TextEditEngine() {}
+CFDE_TextEditEngine::~CFDE_TextEditEngine() = default;
 
 void CFDE_TextEditEngine::Clear() {
   text_length_ = 0;
@@ -1218,7 +1218,7 @@
 CFDE_TextEditEngine::Iterator::Iterator(const CFDE_TextEditEngine* engine)
     : engine_(engine), current_position_(-1) {}
 
-CFDE_TextEditEngine::Iterator::~Iterator() {}
+CFDE_TextEditEngine::Iterator::~Iterator() = default;
 
 void CFDE_TextEditEngine::Iterator::Next(bool bPrev) {
   if (bPrev && current_position_ == -1)
diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp
index e26a63f..c9c19a8 100644
--- a/xfa/fde/cfde_textout.cpp
+++ b/xfa/fde/cfde_textout.cpp
@@ -531,7 +531,7 @@
   m_pieces = ttoLine.m_pieces;
 }
 
-CFDE_TextOut::CFDE_TTOLine::~CFDE_TTOLine() {}
+CFDE_TextOut::CFDE_TTOLine::~CFDE_TTOLine() = default;
 
 int32_t CFDE_TextOut::CFDE_TTOLine::AddPiece(int32_t index,
                                              const FDE_TTOPIECE& ttoPiece) {
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index d0da901..7af2f02 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -607,12 +607,12 @@
 CFX_FontDescriptor::CFX_FontDescriptor()
     : m_nFaceIndex(0), m_dwFontStyles(0), m_dwUsb(), m_dwCsb() {}
 
-CFX_FontDescriptor::~CFX_FontDescriptor() {}
+CFX_FontDescriptor::~CFX_FontDescriptor() = default;
 
 CFGAS_FontMgr::CFGAS_FontMgr()
     : m_pFontSource(std::make_unique<CFX_FontSourceEnum_File>()) {}
 
-CFGAS_FontMgr::~CFGAS_FontMgr() {}
+CFGAS_FontMgr::~CFGAS_FontMgr() = default;
 
 bool CFGAS_FontMgr::EnumFontsFromFontMapper() {
   CFX_FontMapper* pFontMapper =
diff --git a/xfa/fgas/font/cfgas_pdffontmgr.cpp b/xfa/fgas/font/cfgas_pdffontmgr.cpp
index fb6bbf0..0b622ad 100644
--- a/xfa/fgas/font/cfgas_pdffontmgr.cpp
+++ b/xfa/fgas/font/cfgas_pdffontmgr.cpp
@@ -34,7 +34,7 @@
   ASSERT(pFontMgr);
 }
 
-CFGAS_PDFFontMgr::~CFGAS_PDFFontMgr() {}
+CFGAS_PDFFontMgr::~CFGAS_PDFFontMgr() = default;
 
 RetainPtr<CFGAS_GEFont> CFGAS_PDFFontMgr::FindFont(const ByteString& strPsName,
                                                    bool bBold,
diff --git a/xfa/fgas/layout/cfx_linkuserdata.cpp b/xfa/fgas/layout/cfx_linkuserdata.cpp
index d452480..79246c8 100644
--- a/xfa/fgas/layout/cfx_linkuserdata.cpp
+++ b/xfa/fgas/layout/cfx_linkuserdata.cpp
@@ -9,4 +9,4 @@
 CFX_LinkUserData::CFX_LinkUserData(const WideString& wsText)
     : m_wsURLContent(wsText) {}
 
-CFX_LinkUserData::~CFX_LinkUserData() {}
+CFX_LinkUserData::~CFX_LinkUserData() = default;
diff --git a/xfa/fgas/layout/cfx_rtfbreak.cpp b/xfa/fgas/layout/cfx_rtfbreak.cpp
index d77da9a..0f7ab62 100644
--- a/xfa/fgas/layout/cfx_rtfbreak.cpp
+++ b/xfa/fgas/layout/cfx_rtfbreak.cpp
@@ -28,7 +28,7 @@
   m_bPagination = !!(m_dwLayoutStyles & FX_LAYOUTSTYLE_Pagination);
 }
 
-CFX_RTFBreak::~CFX_RTFBreak() {}
+CFX_RTFBreak::~CFX_RTFBreak() = default;
 
 void CFX_RTFBreak::SetLineStartPos(float fLinePos) {
   int32_t iLinePos = FXSYS_roundf(fLinePos * kConversionFactor);
diff --git a/xfa/fgas/layout/cfx_textuserdata.cpp b/xfa/fgas/layout/cfx_textuserdata.cpp
index f5151bd..94f2cc4 100644
--- a/xfa/fgas/layout/cfx_textuserdata.cpp
+++ b/xfa/fgas/layout/cfx_textuserdata.cpp
@@ -20,4 +20,4 @@
     const RetainPtr<CFX_LinkUserData>& pLinkData)
     : m_pStyle(pStyle), m_pLinkData(pLinkData) {}
 
-CFX_TextUserData::~CFX_TextUserData() {}
+CFX_TextUserData::~CFX_TextUserData() = default;
diff --git a/xfa/fgas/layout/cfx_txtbreak.cpp b/xfa/fgas/layout/cfx_txtbreak.cpp
index c48e76f..08025b4 100644
--- a/xfa/fgas/layout/cfx_txtbreak.cpp
+++ b/xfa/fgas/layout/cfx_txtbreak.cpp
@@ -31,7 +31,7 @@
       m_iAlignment(CFX_TxtLineAlignment_Left),
       m_iCombWidth(360000) {}
 
-CFX_TxtBreak::~CFX_TxtBreak() {}
+CFX_TxtBreak::~CFX_TxtBreak() = default;
 
 void CFX_TxtBreak::SetLineWidth(float fLineWidth) {
   m_iLineWidth = FXSYS_roundf(fLineWidth * kConversionFactor);
diff --git a/xfa/fwl/cfwl_checkbox.cpp b/xfa/fwl/cfwl_checkbox.cpp
index abba486..f434add 100644
--- a/xfa/fwl/cfwl_checkbox.cpp
+++ b/xfa/fwl/cfwl_checkbox.cpp
@@ -34,7 +34,7 @@
   m_TTOStyles.single_line_ = true;
 }
 
-CFWL_CheckBox::~CFWL_CheckBox() {}
+CFWL_CheckBox::~CFWL_CheckBox() = default;
 
 FWL_Type CFWL_CheckBox::GetClassID() const {
   return FWL_Type::CheckBox;
diff --git a/xfa/fwl/cfwl_eventmouse.cpp b/xfa/fwl/cfwl_eventmouse.cpp
index 3f8c773..bad066b 100644
--- a/xfa/fwl/cfwl_eventmouse.cpp
+++ b/xfa/fwl/cfwl_eventmouse.cpp
@@ -13,4 +13,4 @@
                                  CFWL_Widget* pDstTarget)
     : CFWL_Event(CFWL_Event::Type::Mouse, pSrcTarget, pDstTarget) {}
 
-CFWL_EventMouse::~CFWL_EventMouse() {}
+CFWL_EventMouse::~CFWL_EventMouse() = default;
diff --git a/xfa/fwl/cfwl_eventscroll.cpp b/xfa/fwl/cfwl_eventscroll.cpp
index 0e9e26c..53b45a7 100644
--- a/xfa/fwl/cfwl_eventscroll.cpp
+++ b/xfa/fwl/cfwl_eventscroll.cpp
@@ -9,4 +9,4 @@
 CFWL_EventScroll::CFWL_EventScroll(CFWL_Widget* pSrcTarget)
     : CFWL_Event(CFWL_Event::Type::Scroll, pSrcTarget) {}
 
-CFWL_EventScroll::~CFWL_EventScroll() {}
+CFWL_EventScroll::~CFWL_EventScroll() = default;
diff --git a/xfa/fwl/cfwl_eventselectchanged.cpp b/xfa/fwl/cfwl_eventselectchanged.cpp
index bc68595..73f396a 100644
--- a/xfa/fwl/cfwl_eventselectchanged.cpp
+++ b/xfa/fwl/cfwl_eventselectchanged.cpp
@@ -9,4 +9,4 @@
 CFWL_EventSelectChanged::CFWL_EventSelectChanged(CFWL_Widget* pSrcTarget)
     : CFWL_Event(CFWL_Event::Type::SelectChanged, pSrcTarget) {}
 
-CFWL_EventSelectChanged::~CFWL_EventSelectChanged() {}
+CFWL_EventSelectChanged::~CFWL_EventSelectChanged() = default;
diff --git a/xfa/fwl/cfwl_eventtarget.cpp b/xfa/fwl/cfwl_eventtarget.cpp
index 4b3d87c..ab33e9e 100644
--- a/xfa/fwl/cfwl_eventtarget.cpp
+++ b/xfa/fwl/cfwl_eventtarget.cpp
@@ -12,7 +12,7 @@
 CFWL_EventTarget::CFWL_EventTarget(CFWL_Widget* pListener)
     : m_pListener(pListener) {}
 
-CFWL_EventTarget::~CFWL_EventTarget() {}
+CFWL_EventTarget::~CFWL_EventTarget() = default;
 
 void CFWL_EventTarget::SetEventSource(CFWL_Widget* pSource) {
   if (pSource)
diff --git a/xfa/fwl/cfwl_eventvalidate.cpp b/xfa/fwl/cfwl_eventvalidate.cpp
index c54d491..c3e68c3 100644
--- a/xfa/fwl/cfwl_eventvalidate.cpp
+++ b/xfa/fwl/cfwl_eventvalidate.cpp
@@ -9,4 +9,4 @@
 CFWL_EventValidate::CFWL_EventValidate(CFWL_Widget* pSrcTarget)
     : CFWL_Event(CFWL_Event::Type::Validate, pSrcTarget) {}
 
-CFWL_EventValidate::~CFWL_EventValidate() {}
+CFWL_EventValidate::~CFWL_EventValidate() = default;
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index af28a40..32d4de0 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -33,7 +33,7 @@
                            CFWL_Widget* pOuter)
     : CFWL_Widget(app, std::move(properties), pOuter) {}
 
-CFWL_ListBox::~CFWL_ListBox() {}
+CFWL_ListBox::~CFWL_ListBox() = default;
 
 FWL_Type CFWL_ListBox::GetClassID() const {
   return FWL_Type::ListBox;
diff --git a/xfa/fwl/cfwl_listitem.cpp b/xfa/fwl/cfwl_listitem.cpp
index edf1be3..25e8cec 100644
--- a/xfa/fwl/cfwl_listitem.cpp
+++ b/xfa/fwl/cfwl_listitem.cpp
@@ -8,4 +8,4 @@
 
 CFWL_ListItem::CFWL_ListItem(const WideString& text) : m_wsText(text) {}
 
-CFWL_ListItem::~CFWL_ListItem() {}
+CFWL_ListItem::~CFWL_ListItem() = default;
diff --git a/xfa/fwl/cfwl_monthcalendar.cpp b/xfa/fwl/cfwl_monthcalendar.cpp
index b1ca9b7..760316b 100644
--- a/xfa/fwl/cfwl_monthcalendar.cpp
+++ b/xfa/fwl/cfwl_monthcalendar.cpp
@@ -820,4 +820,4 @@
       rect(rc),
       wsDay(wsday) {}
 
-CFWL_MonthCalendar::DATEINFO::~DATEINFO() {}
+CFWL_MonthCalendar::DATEINFO::~DATEINFO() = default;
diff --git a/xfa/fwl/cfwl_picturebox.cpp b/xfa/fwl/cfwl_picturebox.cpp
index 7b9fe11..353e03f 100644
--- a/xfa/fwl/cfwl_picturebox.cpp
+++ b/xfa/fwl/cfwl_picturebox.cpp
@@ -11,7 +11,7 @@
 CFWL_PictureBox::CFWL_PictureBox(const CFWL_App* app)
     : CFWL_Widget(app, std::make_unique<CFWL_WidgetProperties>(), nullptr) {}
 
-CFWL_PictureBox::~CFWL_PictureBox() {}
+CFWL_PictureBox::~CFWL_PictureBox() = default;
 
 FWL_Type CFWL_PictureBox::GetClassID() const {
   return FWL_Type::PictureBox;
diff --git a/xfa/fwl/cfwl_pushbutton.cpp b/xfa/fwl/cfwl_pushbutton.cpp
index 4d40baa..8ada727 100644
--- a/xfa/fwl/cfwl_pushbutton.cpp
+++ b/xfa/fwl/cfwl_pushbutton.cpp
@@ -23,7 +23,7 @@
 CFWL_PushButton::CFWL_PushButton(const CFWL_App* app)
     : CFWL_Widget(app, std::make_unique<CFWL_WidgetProperties>(), nullptr) {}
 
-CFWL_PushButton::~CFWL_PushButton() {}
+CFWL_PushButton::~CFWL_PushButton() = default;
 
 FWL_Type CFWL_PushButton::GetClassID() const {
   return FWL_Type::PushButton;
diff --git a/xfa/fwl/cfwl_widgetmgr.cpp b/xfa/fwl/cfwl_widgetmgr.cpp
index b2e61b9..bf06935 100644
--- a/xfa/fwl/cfwl_widgetmgr.cpp
+++ b/xfa/fwl/cfwl_widgetmgr.cpp
@@ -382,4 +382,4 @@
       pWidget(widget),
       iRedrawCounter(0) {}
 
-CFWL_WidgetMgr::Item::~Item() {}
+CFWL_WidgetMgr::Item::~Item() = default;
diff --git a/xfa/fwl/theme/cfwl_barcodetp.cpp b/xfa/fwl/theme/cfwl_barcodetp.cpp
index c94fe17..a0f301b 100644
--- a/xfa/fwl/theme/cfwl_barcodetp.cpp
+++ b/xfa/fwl/theme/cfwl_barcodetp.cpp
@@ -12,7 +12,7 @@
 
 CFWL_BarcodeTP::CFWL_BarcodeTP() {}
 
-CFWL_BarcodeTP::~CFWL_BarcodeTP() {}
+CFWL_BarcodeTP::~CFWL_BarcodeTP() = default;
 
 void CFWL_BarcodeTP::DrawBackground(const CFWL_ThemeBackground& pParams) {
   switch (pParams.m_iPart) {
diff --git a/xfa/fwl/theme/cfwl_datetimepickertp.cpp b/xfa/fwl/theme/cfwl_datetimepickertp.cpp
index 1f6bb63..59f34c4 100644
--- a/xfa/fwl/theme/cfwl_datetimepickertp.cpp
+++ b/xfa/fwl/theme/cfwl_datetimepickertp.cpp
@@ -11,7 +11,7 @@
 
 CFWL_DateTimePickerTP::CFWL_DateTimePickerTP() {}
 
-CFWL_DateTimePickerTP::~CFWL_DateTimePickerTP() {}
+CFWL_DateTimePickerTP::~CFWL_DateTimePickerTP() = default;
 
 void CFWL_DateTimePickerTP::DrawBackground(
     const CFWL_ThemeBackground& pParams) {
diff --git a/xfa/fwl/theme/cfwl_pictureboxtp.cpp b/xfa/fwl/theme/cfwl_pictureboxtp.cpp
index ea13b6c..976dcbe 100644
--- a/xfa/fwl/theme/cfwl_pictureboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_pictureboxtp.cpp
@@ -12,7 +12,7 @@
 
 CFWL_PictureBoxTP::CFWL_PictureBoxTP() {}
 
-CFWL_PictureBoxTP::~CFWL_PictureBoxTP() {}
+CFWL_PictureBoxTP::~CFWL_PictureBoxTP() = default;
 
 void CFWL_PictureBoxTP::DrawBackground(const CFWL_ThemeBackground& pParams) {
   switch (pParams.m_iPart) {
diff --git a/xfa/fwl/theme/cfwl_pushbuttontp.cpp b/xfa/fwl/theme/cfwl_pushbuttontp.cpp
index b962d09..2a7db50 100644
--- a/xfa/fwl/theme/cfwl_pushbuttontp.cpp
+++ b/xfa/fwl/theme/cfwl_pushbuttontp.cpp
@@ -20,7 +20,7 @@
   SetThemeData();
 }
 
-CFWL_PushButtonTP::~CFWL_PushButtonTP() {}
+CFWL_PushButtonTP::~CFWL_PushButtonTP() = default;
 
 void CFWL_PushButtonTP::DrawBackground(const CFWL_ThemeBackground& pParams) {
   switch (pParams.m_iPart) {
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.cpp b/xfa/fwl/theme/cfwl_scrollbartp.cpp
index 74fd251..9953c53 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.cpp
+++ b/xfa/fwl/theme/cfwl_scrollbartp.cpp
@@ -24,7 +24,7 @@
   SetThemeData();
 }
 
-CFWL_ScrollBarTP::~CFWL_ScrollBarTP() {}
+CFWL_ScrollBarTP::~CFWL_ScrollBarTP() = default;
 
 void CFWL_ScrollBarTP::DrawBackground(const CFWL_ThemeBackground& pParams) {
   CFWL_Widget* pWidget = pParams.m_pWidget;
diff --git a/xfa/fwl/theme/cfwl_widgettp.cpp b/xfa/fwl/theme/cfwl_widgettp.cpp
index 975295c..047a8a5 100644
--- a/xfa/fwl/theme/cfwl_widgettp.cpp
+++ b/xfa/fwl/theme/cfwl_widgettp.cpp
@@ -222,7 +222,7 @@
 
 CFWL_FontData::CFWL_FontData() : m_dwStyles(0), m_dwCodePage(0) {}
 
-CFWL_FontData::~CFWL_FontData() {}
+CFWL_FontData::~CFWL_FontData() = default;
 
 bool CFWL_FontData::Equal(WideStringView wsFontFamily,
                           uint32_t dwFontStyles,
diff --git a/xfa/fxfa/cxfa_ffapp.cpp b/xfa/fxfa/cxfa_ffapp.cpp
index 69e67de..a9fe4e0 100644
--- a/xfa/fxfa/cxfa_ffapp.cpp
+++ b/xfa/fxfa/cxfa_ffapp.cpp
@@ -36,7 +36,7 @@
   m_pFWLApp = std::make_unique<CFWL_App>(this);
 }
 
-CXFA_FFApp::~CXFA_FFApp() {}
+CXFA_FFApp::~CXFA_FFApp() = default;
 
 CFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() {
   if (!m_pFDEFontMgr) {
diff --git a/xfa/fxfa/cxfa_ffarc.cpp b/xfa/fxfa/cxfa_ffarc.cpp
index 5b26e92..fa4e8f4 100644
--- a/xfa/fxfa/cxfa_ffarc.cpp
+++ b/xfa/fxfa/cxfa_ffarc.cpp
@@ -11,7 +11,7 @@
 
 CXFA_FFArc::CXFA_FFArc(CXFA_Node* pNode) : CXFA_FFWidget(pNode) {}
 
-CXFA_FFArc::~CXFA_FFArc() {}
+CXFA_FFArc::~CXFA_FFArc() = default;
 
 void CXFA_FFArc::RenderWidget(CXFA_Graphics* pGS,
                               const CFX_Matrix& matrix,
diff --git a/xfa/fxfa/cxfa_ffexclgroup.cpp b/xfa/fxfa/cxfa_ffexclgroup.cpp
index dc0b4c7..b634f85 100644
--- a/xfa/fxfa/cxfa_ffexclgroup.cpp
+++ b/xfa/fxfa/cxfa_ffexclgroup.cpp
@@ -13,7 +13,7 @@
 
 CXFA_FFExclGroup::CXFA_FFExclGroup(CXFA_Node* pNode) : CXFA_FFWidget(pNode) {}
 
-CXFA_FFExclGroup::~CXFA_FFExclGroup() {}
+CXFA_FFExclGroup::~CXFA_FFExclGroup() = default;
 
 void CXFA_FFExclGroup::RenderWidget(CXFA_Graphics* pGS,
                                     const CFX_Matrix& matrix,
diff --git a/xfa/fxfa/cxfa_ffline.cpp b/xfa/fxfa/cxfa_ffline.cpp
index ec51040..d56ccd5 100644
--- a/xfa/fxfa/cxfa_ffline.cpp
+++ b/xfa/fxfa/cxfa_ffline.cpp
@@ -31,7 +31,7 @@
 
 CXFA_FFLine::CXFA_FFLine(CXFA_Node* pNode) : CXFA_FFWidget(pNode) {}
 
-CXFA_FFLine::~CXFA_FFLine() {}
+CXFA_FFLine::~CXFA_FFLine() = default;
 
 void CXFA_FFLine::GetRectFromHand(CFX_RectF& rect,
                                   XFA_AttributeValue iHand,
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index 28786d1..60894ef 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -44,7 +44,7 @@
 
 CXFA_FFNotify::CXFA_FFNotify(CXFA_FFDoc* pDoc) : m_pDoc(pDoc) {}
 
-CXFA_FFNotify::~CXFA_FFNotify() {}
+CXFA_FFNotify::~CXFA_FFNotify() = default;
 
 void CXFA_FFNotify::OnPageEvent(CXFA_ViewLayoutItem* pSender,
                                 uint32_t dwEvent) {
diff --git a/xfa/fxfa/cxfa_ffpageview.cpp b/xfa/fxfa/cxfa_ffpageview.cpp
index 300b9f5..45a4ddc 100644
--- a/xfa/fxfa/cxfa_ffpageview.cpp
+++ b/xfa/fxfa/cxfa_ffpageview.cpp
@@ -117,7 +117,7 @@
 CXFA_FFPageView::CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea)
     : m_pPageArea(pPageArea), m_pDocView(pDocView) {}
 
-CXFA_FFPageView::~CXFA_FFPageView() {}
+CXFA_FFPageView::~CXFA_FFPageView() = default;
 
 CXFA_FFDocView* CXFA_FFPageView::GetDocView() const {
   return m_pDocView.Get();
@@ -244,7 +244,8 @@
   Reset();
 }
 
-CXFA_FFTabOrderPageWidgetIterator::~CXFA_FFTabOrderPageWidgetIterator() {}
+CXFA_FFTabOrderPageWidgetIterator::~CXFA_FFTabOrderPageWidgetIterator() =
+    default;
 
 void CXFA_FFTabOrderPageWidgetIterator::Reset() {
   CreateTabOrderWidgetArray();
@@ -475,4 +476,4 @@
 
 CXFA_TabParam::CXFA_TabParam(CXFA_FFWidget* pWidget) : m_pWidget(pWidget) {}
 
-CXFA_TabParam::~CXFA_TabParam() {}
+CXFA_TabParam::~CXFA_TabParam() = default;
diff --git a/xfa/fxfa/cxfa_ffrectangle.cpp b/xfa/fxfa/cxfa_ffrectangle.cpp
index ff5e576..1619f24 100644
--- a/xfa/fxfa/cxfa_ffrectangle.cpp
+++ b/xfa/fxfa/cxfa_ffrectangle.cpp
@@ -11,7 +11,7 @@
 
 CXFA_FFRectangle::CXFA_FFRectangle(CXFA_Node* pNode) : CXFA_FFWidget(pNode) {}
 
-CXFA_FFRectangle::~CXFA_FFRectangle() {}
+CXFA_FFRectangle::~CXFA_FFRectangle() = default;
 
 void CXFA_FFRectangle::RenderWidget(CXFA_Graphics* pGS,
                                     const CFX_Matrix& matrix,
diff --git a/xfa/fxfa/cxfa_fftext.cpp b/xfa/fxfa/cxfa_fftext.cpp
index f4ddbe0..c1ea03c 100644
--- a/xfa/fxfa/cxfa_fftext.cpp
+++ b/xfa/fxfa/cxfa_fftext.cpp
@@ -20,7 +20,7 @@
 
 CXFA_FFText::CXFA_FFText(CXFA_Node* pNode) : CXFA_FFWidget(pNode) {}
 
-CXFA_FFText::~CXFA_FFText() {}
+CXFA_FFText::~CXFA_FFText() = default;
 
 void CXFA_FFText::RenderWidget(CXFA_Graphics* pGS,
                                const CFX_Matrix& matrix,
diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp
index 81bff46..79015a2 100644
--- a/xfa/fxfa/cxfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp
@@ -25,7 +25,7 @@
 CXFA_FFWidgetHandler::CXFA_FFWidgetHandler(CXFA_FFDocView* pDocView)
     : m_pDocView(pDocView) {}
 
-CXFA_FFWidgetHandler::~CXFA_FFWidgetHandler() {}
+CXFA_FFWidgetHandler::~CXFA_FFWidgetHandler() = default;
 
 bool CXFA_FFWidgetHandler::OnMouseEnter(CXFA_FFWidget* hWidget) {
   m_pDocView->LockUpdate();
diff --git a/xfa/fxfa/cxfa_fwladapterwidgetmgr.cpp b/xfa/fxfa/cxfa_fwladapterwidgetmgr.cpp
index a67bf08..35b6a62 100644
--- a/xfa/fxfa/cxfa_fwladapterwidgetmgr.cpp
+++ b/xfa/fxfa/cxfa_fwladapterwidgetmgr.cpp
@@ -11,7 +11,7 @@
 
 CXFA_FWLAdapterWidgetMgr::CXFA_FWLAdapterWidgetMgr() {}
 
-CXFA_FWLAdapterWidgetMgr::~CXFA_FWLAdapterWidgetMgr() {}
+CXFA_FWLAdapterWidgetMgr::~CXFA_FWLAdapterWidgetMgr() = default;
 
 void CXFA_FWLAdapterWidgetMgr::RepaintWidget(CFWL_Widget* pWidget) {
   if (!pWidget)
diff --git a/xfa/fxfa/cxfa_pieceline.cpp b/xfa/fxfa/cxfa_pieceline.cpp
index 6570ad5..7f49249 100644
--- a/xfa/fxfa/cxfa_pieceline.cpp
+++ b/xfa/fxfa/cxfa_pieceline.cpp
@@ -10,4 +10,4 @@
 
 CXFA_PieceLine::CXFA_PieceLine() {}
 
-CXFA_PieceLine::~CXFA_PieceLine() {}
+CXFA_PieceLine::~CXFA_PieceLine() = default;
diff --git a/xfa/fxfa/cxfa_readynodeiterator.cpp b/xfa/fxfa/cxfa_readynodeiterator.cpp
index 728d9d6..0f773f7 100644
--- a/xfa/fxfa/cxfa_readynodeiterator.cpp
+++ b/xfa/fxfa/cxfa_readynodeiterator.cpp
@@ -11,7 +11,7 @@
 CXFA_ReadyNodeIterator::CXFA_ReadyNodeIterator(CXFA_Node* pTravelRoot)
     : m_ContentIterator(pTravelRoot) {}
 
-CXFA_ReadyNodeIterator::~CXFA_ReadyNodeIterator() {}
+CXFA_ReadyNodeIterator::~CXFA_ReadyNodeIterator() = default;
 
 CXFA_Node* CXFA_ReadyNodeIterator::MoveToNext() {
   CXFA_Node* pItem = m_pCurNode ? m_ContentIterator.MoveToNext()
diff --git a/xfa/fxfa/cxfa_textparsecontext.cpp b/xfa/fxfa/cxfa_textparsecontext.cpp
index bd21afc..1893402 100644
--- a/xfa/fxfa/cxfa_textparsecontext.cpp
+++ b/xfa/fxfa/cxfa_textparsecontext.cpp
@@ -13,4 +13,4 @@
 CXFA_TextParseContext::CXFA_TextParseContext()
     : m_pParentStyle(nullptr), m_eDisplay(CFX_CSSDisplay::None) {}
 
-CXFA_TextParseContext::~CXFA_TextParseContext() {}
+CXFA_TextParseContext::~CXFA_TextParseContext() = default;
diff --git a/xfa/fxfa/cxfa_textparser.cpp b/xfa/fxfa/cxfa_textparser.cpp
index 09094b8..fd3bfe6 100644
--- a/xfa/fxfa/cxfa_textparser.cpp
+++ b/xfa/fxfa/cxfa_textparser.cpp
@@ -59,7 +59,7 @@
 CXFA_TextParser::CXFA_TextParser()
     : m_bParsed(false), m_cssInitialized(false) {}
 
-CXFA_TextParser::~CXFA_TextParser() {}
+CXFA_TextParser::~CXFA_TextParser() = default;
 
 void CXFA_TextParser::Reset() {
   m_mapXMLNodeToParseContext.clear();
@@ -634,4 +634,4 @@
 CXFA_TextParser::TagProvider::TagProvider()
     : m_bTagAvailable(false), m_bContent(false) {}
 
-CXFA_TextParser::TagProvider::~TagProvider() {}
+CXFA_TextParser::TagProvider::~TagProvider() = default;
diff --git a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
index 2c4c96d..ad5ecb3 100644
--- a/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_contentlayoutprocessor.cpp
@@ -626,7 +626,7 @@
       ToContentLayoutItem(GetFormNode()->JSObject()->GetLayoutItem()));
 }
 
-CXFA_ContentLayoutProcessor::~CXFA_ContentLayoutProcessor() {}
+CXFA_ContentLayoutProcessor::~CXFA_ContentLayoutProcessor() = default;
 
 RetainPtr<CXFA_ContentLayoutItem>
 CXFA_ContentLayoutProcessor::CreateContentLayoutItem(CXFA_Node* pFormNode) {
diff --git a/xfa/fxfa/parser/cscript_datawindow.cpp b/xfa/fxfa/parser/cscript_datawindow.cpp
index 5224ed2..1e95bea 100644
--- a/xfa/fxfa/parser/cscript_datawindow.cpp
+++ b/xfa/fxfa/parser/cscript_datawindow.cpp
@@ -19,4 +19,4 @@
                   XFA_Element::DataWindow,
                   std::make_unique<CJX_DataWindow>(this)) {}
 
-CScript_DataWindow::~CScript_DataWindow() {}
+CScript_DataWindow::~CScript_DataWindow() = default;
diff --git a/xfa/fxfa/parser/cscript_logpseudomodel.cpp b/xfa/fxfa/parser/cscript_logpseudomodel.cpp
index 65207b5..5808104 100644
--- a/xfa/fxfa/parser/cscript_logpseudomodel.cpp
+++ b/xfa/fxfa/parser/cscript_logpseudomodel.cpp
@@ -16,4 +16,4 @@
                   XFA_Element::LogPseudoModel,
                   std::make_unique<CJX_LogPseudoModel>(this)) {}
 
-CScript_LogPseudoModel::~CScript_LogPseudoModel() {}
+CScript_LogPseudoModel::~CScript_LogPseudoModel() = default;
diff --git a/xfa/fxfa/parser/cxfa_arraynodelist.cpp b/xfa/fxfa/parser/cxfa_arraynodelist.cpp
index db36dca..cedf7ef 100644
--- a/xfa/fxfa/parser/cxfa_arraynodelist.cpp
+++ b/xfa/fxfa/parser/cxfa_arraynodelist.cpp
@@ -12,7 +12,7 @@
 CXFA_ArrayNodeList::CXFA_ArrayNodeList(CXFA_Document* pDocument)
     : CXFA_TreeList(pDocument) {}
 
-CXFA_ArrayNodeList::~CXFA_ArrayNodeList() {}
+CXFA_ArrayNodeList::~CXFA_ArrayNodeList() = default;
 
 void CXFA_ArrayNodeList::SetArrayNodeList(std::vector<CXFA_Node*> srcArray) {
   if (!srcArray.empty())
diff --git a/xfa/fxfa/parser/cxfa_boolean.cpp b/xfa/fxfa/parser/cxfa_boolean.cpp
index 9a5e0a9..b4ae118 100644
--- a/xfa/fxfa/parser/cxfa_boolean.cpp
+++ b/xfa/fxfa/parser/cxfa_boolean.cpp
@@ -32,4 +32,4 @@
                 kBooleanAttributeData,
                 std::make_unique<CJX_Boolean>(this)) {}
 
-CXFA_Boolean::~CXFA_Boolean() {}
+CXFA_Boolean::~CXFA_Boolean() = default;
diff --git a/xfa/fxfa/parser/cxfa_cache.cpp b/xfa/fxfa/parser/cxfa_cache.cpp
index 3437a35..16ec425 100644
--- a/xfa/fxfa/parser/cxfa_cache.cpp
+++ b/xfa/fxfa/parser/cxfa_cache.cpp
@@ -33,4 +33,4 @@
                 kCacheAttributeData,
                 std::make_unique<CJX_Node>(this)) {}
 
-CXFA_Cache::~CXFA_Cache() {}
+CXFA_Cache::~CXFA_Cache() = default;
diff --git a/xfa/fxfa/parser/cxfa_comb.cpp b/xfa/fxfa/parser/cxfa_comb.cpp
index d864f69..73c7b6c 100644
--- a/xfa/fxfa/parser/cxfa_comb.cpp
+++ b/xfa/fxfa/parser/cxfa_comb.cpp
@@ -31,4 +31,4 @@
                 kCombAttributeData,
                 std::make_unique<CJX_Node>(this)) {}
 
-CXFA_Comb::~CXFA_Comb() {}
+CXFA_Comb::~CXFA_Comb() = default;
diff --git a/xfa/fxfa/parser/cxfa_deltas.cpp b/xfa/fxfa/parser/cxfa_deltas.cpp
index 48208fb..7dd48a0 100644
--- a/xfa/fxfa/parser/cxfa_deltas.cpp
+++ b/xfa/fxfa/parser/cxfa_deltas.cpp
@@ -13,4 +13,4 @@
 CXFA_Deltas::CXFA_Deltas(CXFA_Document* doc)
     : CXFA_List(doc, std::make_unique<CJX_List>(this)) {}
 
-CXFA_Deltas::~CXFA_Deltas() {}
+CXFA_Deltas::~CXFA_Deltas() = default;
diff --git a/xfa/fxfa/parser/cxfa_interactive.cpp b/xfa/fxfa/parser/cxfa_interactive.cpp
index b66b185..3887c7e 100644
--- a/xfa/fxfa/parser/cxfa_interactive.cpp
+++ b/xfa/fxfa/parser/cxfa_interactive.cpp
@@ -29,4 +29,4 @@
                 kInteractiveAttributeData,
                 std::make_unique<CJX_Node>(this)) {}
 
-CXFA_Interactive::~CXFA_Interactive() {}
+CXFA_Interactive::~CXFA_Interactive() = default;
diff --git a/xfa/fxfa/parser/cxfa_list.cpp b/xfa/fxfa/parser/cxfa_list.cpp
index 6329cec..035266d 100644
--- a/xfa/fxfa/parser/cxfa_list.cpp
+++ b/xfa/fxfa/parser/cxfa_list.cpp
@@ -29,4 +29,4 @@
       std::unique_ptr<CXFA_List>(this));
 }
 
-CXFA_List::~CXFA_List() {}
+CXFA_List::~CXFA_List() = default;
diff --git a/xfa/fxfa/parser/cxfa_localemgr.cpp b/xfa/fxfa/parser/cxfa_localemgr.cpp
index e46768f..d866f55 100644
--- a/xfa/fxfa/parser/cxfa_localemgr.cpp
+++ b/xfa/fxfa/parser/cxfa_localemgr.cpp
@@ -1136,7 +1136,7 @@
   }
 }
 
-CXFA_LocaleMgr::~CXFA_LocaleMgr() {}
+CXFA_LocaleMgr::~CXFA_LocaleMgr() = default;
 
 LocaleIface* CXFA_LocaleMgr::GetDefLocale() {
   if (m_pDefLocale)
diff --git a/xfa/fxfa/parser/cxfa_nodelocale.cpp b/xfa/fxfa/parser/cxfa_nodelocale.cpp
index 01d2dc5..5a621f6 100644
--- a/xfa/fxfa/parser/cxfa_nodelocale.cpp
+++ b/xfa/fxfa/parser/cxfa_nodelocale.cpp
@@ -42,7 +42,7 @@
 
 CXFA_NodeLocale::CXFA_NodeLocale(CXFA_Node* pLocale) : m_pLocale(pLocale) {}
 
-CXFA_NodeLocale::~CXFA_NodeLocale() {}
+CXFA_NodeLocale::~CXFA_NodeLocale() = default;
 
 WideString CXFA_NodeLocale::GetName() const {
   return WideString(m_pLocale
diff --git a/xfa/fxfa/parser/cxfa_rectangle.cpp b/xfa/fxfa/parser/cxfa_rectangle.cpp
index c325a6a..1ffead3 100644
--- a/xfa/fxfa/parser/cxfa_rectangle.cpp
+++ b/xfa/fxfa/parser/cxfa_rectangle.cpp
@@ -59,7 +59,7 @@
                attributes,
                std::move(js_node)) {}
 
-CXFA_Rectangle::~CXFA_Rectangle() {}
+CXFA_Rectangle::~CXFA_Rectangle() = default;
 
 void CXFA_Rectangle::GetFillPath(const std::vector<CXFA_Stroke*>& strokes,
                                  const CFX_RectF& rtWidget,
diff --git a/xfa/fxfa/parser/cxfa_timezoneprovider.cpp b/xfa/fxfa/parser/cxfa_timezoneprovider.cpp
index 0469563..899e4e3 100644
--- a/xfa/fxfa/parser/cxfa_timezoneprovider.cpp
+++ b/xfa/fxfa/parser/cxfa_timezoneprovider.cpp
@@ -31,4 +31,4 @@
 #endif
 }
 
-CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() {}
+CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() = default;
diff --git a/xfa/fxfa/parser/cxfa_traverse.cpp b/xfa/fxfa/parser/cxfa_traverse.cpp
index bb0e567..0d9318e 100644
--- a/xfa/fxfa/parser/cxfa_traverse.cpp
+++ b/xfa/fxfa/parser/cxfa_traverse.cpp
@@ -38,4 +38,4 @@
                 kTraverseAttributeData,
                 std::make_unique<CJX_Node>(this)) {}
 
-CXFA_Traverse::~CXFA_Traverse() {}
+CXFA_Traverse::~CXFA_Traverse() = default;
diff --git a/xfa/fxfa/parser/cxfa_xmllocale.cpp b/xfa/fxfa/parser/cxfa_xmllocale.cpp
index 9711b6b..e0370a5 100644
--- a/xfa/fxfa/parser/cxfa_xmllocale.cpp
+++ b/xfa/fxfa/parser/cxfa_xmllocale.cpp
@@ -59,7 +59,7 @@
   ASSERT(locale_);
 }
 
-CXFA_XMLLocale::~CXFA_XMLLocale() {}
+CXFA_XMLLocale::~CXFA_XMLLocale() = default;
 
 WideString CXFA_XMLLocale::GetName() const {
   return locale_->GetAttribute(L"name");
diff --git a/xfa/fxgraphics/cxfa_gepath.cpp b/xfa/fxgraphics/cxfa_gepath.cpp
index 71e1428..c683339 100644
--- a/xfa/fxgraphics/cxfa_gepath.cpp
+++ b/xfa/fxgraphics/cxfa_gepath.cpp
@@ -10,7 +10,7 @@
 
 CXFA_GEPath::CXFA_GEPath() {}
 
-CXFA_GEPath::~CXFA_GEPath() {}
+CXFA_GEPath::~CXFA_GEPath() = default;
 
 void CXFA_GEPath::Clear() {
   data_.Clear();
diff --git a/xfa/fxgraphics/cxfa_gepattern.cpp b/xfa/fxgraphics/cxfa_gepattern.cpp
index 5a98a5f..c0668d3 100644
--- a/xfa/fxgraphics/cxfa_gepattern.cpp
+++ b/xfa/fxgraphics/cxfa_gepattern.cpp
@@ -11,4 +11,4 @@
                                const FX_ARGB backArgb)
     : m_hatchStyle(hatchStyle), m_foreArgb(foreArgb), m_backArgb(backArgb) {}
 
-CXFA_GEPattern::~CXFA_GEPattern() {}
+CXFA_GEPattern::~CXFA_GEPattern() = default;
diff --git a/xfa/fxgraphics/cxfa_geshading.cpp b/xfa/fxgraphics/cxfa_geshading.cpp
index d1bec70..3a2e4c9 100644
--- a/xfa/fxgraphics/cxfa_geshading.cpp
+++ b/xfa/fxgraphics/cxfa_geshading.cpp
@@ -44,7 +44,7 @@
   InitArgbArray();
 }
 
-CXFA_GEShading::~CXFA_GEShading() {}
+CXFA_GEShading::~CXFA_GEShading() = default;
 
 void CXFA_GEShading::InitArgbArray() {
   int32_t a1;