lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [lmi] master 9b3d0f1: Write explicitly-defaulted [cd]tors


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 9b3d0f1: Write explicitly-defaulted [cd]tors inline, in class defn
Date: Sun, 5 Mar 2017 14:28:23 -0500 (EST)

branch: master
commit 9b3d0f1134744e6fe7e4bba8ffa5e8a655f7648b
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Write explicitly-defaulted [cd]tors inline, in class defn
    
    This commit includes ctors that had not been explicitly defaulted but
    could readily be, e.g., by substituting brace-or-equal-initializers for
    ctor-initializers.
---
 authenticity.cpp           |  9 ---------
 authenticity.hpp           | 10 +++++-----
 census_document.cpp        |  7 -------
 census_document.hpp        |  4 ++--
 datum_base.cpp             |  7 -------
 datum_base.hpp             |  6 +++---
 datum_string.cpp           |  4 ----
 datum_string.hpp           |  4 ++--
 default_view.cpp           |  4 ----
 default_view.hpp           |  4 ++--
 fund_data.cpp              | 18 ------------------
 fund_data.hpp              | 16 ++++++++--------
 gpt_document.cpp           |  7 -------
 gpt_document.hpp           |  4 ++--
 gpt_view.cpp               | 13 -------------
 gpt_view.hpp               | 12 ++++++------
 gpt_xml_document.cpp       |  9 ---------
 gpt_xml_document.hpp       |  8 ++++----
 group_quote_pdf_gen.cpp    |  4 ----
 group_quote_pdf_gen.hpp    |  4 ++--
 group_quote_pdf_gen_wx.cpp | 12 +++---------
 group_values.cpp           |  4 ----
 group_values.hpp           |  4 ++--
 illustration_document.cpp  |  7 -------
 illustration_document.hpp  |  6 +++---
 illustration_view.cpp      |  9 ---------
 illustration_view.hpp      |  8 ++++----
 input_sequence_entry.cpp   |  5 -----
 input_sequence_entry.hpp   |  4 ++--
 ledger_variant.cpp         |  4 ----
 ledger_variant.hpp         |  4 ++--
 loads.cpp                  |  4 ----
 loads.hpp                  |  2 +-
 main_wx_test.cpp           | 12 +++---------
 mec_document.cpp           |  7 -------
 mec_document.hpp           |  4 ++--
 mec_view.cpp               | 13 -------------
 mec_view.hpp               | 12 ++++++------
 mec_xml_document.cpp       |  9 ---------
 mec_xml_document.hpp       |  4 ++--
 mvc_model.cpp              |  4 ----
 mvc_model.hpp              |  4 ++--
 mvc_view.cpp               |  4 ----
 mvc_view.hpp               |  4 ++--
 policy_view.cpp            |  8 --------
 policy_view.hpp            |  4 ++--
 preferences_view.cpp       |  4 ----
 preferences_view.hpp       |  4 ++--
 product_editor.cpp         | 24 ------------------------
 product_editor.hpp         | 18 +++++++++---------
 rounding_rules.cpp         | 13 -------------
 rounding_rules.hpp         | 13 +++++++------
 rounding_view.cpp          |  8 --------
 rounding_view.hpp          |  4 ++--
 single_cell_document.cpp   |  9 ---------
 single_cell_document.hpp   |  4 ++--
 stratified_charges.cpp     |  6 ------
 stratified_charges.hpp     |  6 +++---
 test_coding_rules.cpp      |  8 ++++----
 text_doc.cpp               |  7 -------
 text_doc.hpp               |  4 ++--
 text_view.cpp              |  8 --------
 text_view.hpp              |  6 +++---
 view_ex.cpp                |  7 -------
 view_ex.hpp                |  4 ++--
 65 files changed, 108 insertions(+), 365 deletions(-)

diff --git a/authenticity.cpp b/authenticity.cpp
index bf951ce..1164dee 100644
--- a/authenticity.cpp
+++ b/authenticity.cpp
@@ -51,15 +51,6 @@ namespace
     int const chars_per_formatted_hex_byte = CHAR_BIT / 4;
 }
 
-/// Initialize cached date to JDN zero, which is peremptorily invalid.
-
-Authenticity::Authenticity()
-    :CachedDate_(jdn_t(0))
-{
-}
-
-Authenticity::~Authenticity() = default;
-
 Authenticity& Authenticity::Instance()
 {
     try
diff --git a/authenticity.hpp b/authenticity.hpp
index 447b8f6..0ae15ce 100644
--- a/authenticity.hpp
+++ b/authenticity.hpp
@@ -43,8 +43,8 @@ enum {md5len = 128 / CHAR_BIT};
 /// Implemented as a simple Meyers singleton, with the expected
 /// dead-reference and threading issues.
 ///
-/// 'cached_date_' holds the most-recently-validated date, or a
-/// peremptorily-invalid default value of JDN zero.
+/// 'cached_date_' holds the most-recently-validated date; it is
+/// initialized to a peremptorily-invalid default value of JDN zero.
 
 class Authenticity final
 {
@@ -58,14 +58,14 @@ class Authenticity final
         );
 
   private:
-    Authenticity();
-    ~Authenticity();
+    Authenticity() = default;
+    ~Authenticity() = default;
     Authenticity(Authenticity const&) = delete;
     Authenticity& operator=(Authenticity const&) = delete;
 
     static void ResetCache();
 
-    mutable calendar_date CachedDate_;
+    mutable calendar_date CachedDate_ = calendar_date(jdn_t(0));
 };
 
 /// Authenticate production system and its crucial data files.
diff --git a/census_document.cpp b/census_document.cpp
index a146f61..bf2d381 100644
--- a/census_document.cpp
+++ b/census_document.cpp
@@ -35,13 +35,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(CensusDocument, wxDocument)
 
-CensusDocument::CensusDocument()
-    :wxDocument()
-{
-}
-
-CensusDocument::~CensusDocument() = default;
-
 wxDataViewCtrl& CensusDocument::PredominantViewWindow() const
 {
     return ::PredominantViewWindow<CensusView,wxDataViewCtrl>
diff --git a/census_document.hpp b/census_document.hpp
index d438619..df9d844 100644
--- a/census_document.hpp
+++ b/census_document.hpp
@@ -37,8 +37,8 @@ class CensusDocument
     friend class CensusView;
 
   public:
-    CensusDocument();
-    ~CensusDocument() override;
+    CensusDocument() = default;
+    ~CensusDocument() override = default;
 
   private:
     CensusDocument(CensusDocument const&) = delete;
diff --git a/datum_base.cpp b/datum_base.cpp
index bfe4f70..87c40df 100644
--- a/datum_base.cpp
+++ b/datum_base.cpp
@@ -23,13 +23,6 @@
 
 #include "datum_base.hpp"
 
-datum_base::datum_base()
-    :enabled_(true)
-{
-}
-
-datum_base::~datum_base() = default;
-
 void datum_base::enable(bool b)
 {
     enabled_ = b;
diff --git a/datum_base.hpp b/datum_base.hpp
index 2a63995..9b1e97f 100644
--- a/datum_base.hpp
+++ b/datum_base.hpp
@@ -34,8 +34,8 @@
 class LMI_SO datum_base
 {
   public:
-    datum_base();
-    virtual ~datum_base();
+    datum_base() = default;
+    virtual ~datum_base() = default;
 
     void enable(bool);
     bool is_enabled() const;
@@ -44,7 +44,7 @@ class LMI_SO datum_base
     virtual std::ostream& write(std::ostream&) const = 0;
 
   private:
-    bool enabled_;
+    bool enabled_ = true;
 };
 
 inline std::istream& operator>>(std::istream& is, datum_base& z)
diff --git a/datum_string.cpp b/datum_string.cpp
index 2159e1b..2cd7e34 100644
--- a/datum_string.cpp
+++ b/datum_string.cpp
@@ -25,15 +25,11 @@
 
 #include "facets.hpp"
 
-datum_string::datum_string() = default;
-
 datum_string::datum_string(std::string const& value)
     :value_(value)
 {
 }
 
-datum_string::~datum_string() = default;
-
 datum_string& datum_string::operator=(std::string const& s)
 {
     value_ = s;
diff --git a/datum_string.hpp b/datum_string.hpp
index 47b7eb3..5457a5b 100644
--- a/datum_string.hpp
+++ b/datum_string.hpp
@@ -39,9 +39,9 @@ class datum_string
     ,private boost::equality_comparable<datum_string,datum_string>
 {
   public:
-    datum_string();
+    datum_string() = default;
     explicit datum_string(std::string const&);
-    ~datum_string() override;
+    ~datum_string() override = default;
 
     datum_string& operator=(std::string const&);
 
diff --git a/default_view.cpp b/default_view.cpp
index c161d37..355515f 100644
--- a/default_view.cpp
+++ b/default_view.cpp
@@ -25,10 +25,6 @@
 
 #include "configurable_settings.hpp"
 
-DefaultView::DefaultView() = default;
-
-DefaultView::~DefaultView() = default;
-
 char const* DefaultView::DoBookControlName() const
 {
     return "input_notebook";
diff --git a/default_view.hpp b/default_view.hpp
index 3f434b8..a17e1dd 100644
--- a/default_view.hpp
+++ b/default_view.hpp
@@ -37,8 +37,8 @@ class DefaultView
     :public MvcView
 {
   public:
-    DefaultView();
-    ~DefaultView() override;
+    DefaultView() = default;
+    ~DefaultView() override = default;
 
   private:
     // MvcView required implementation.
diff --git a/fund_data.cpp b/fund_data.cpp
index d96bab8..90cdf34 100644
--- a/fund_data.cpp
+++ b/fund_data.cpp
@@ -35,15 +35,6 @@
 #include <boost/filesystem/path.hpp>
 
 //============================================================================
-FundInfo::FundInfo()
-    :ScalarIMF_(0.0)
-    ,ShortName_("")
-    ,LongName_ ("")
-    ,gloss_    ("")
-{
-}
-
-//============================================================================
 FundInfo::FundInfo
     (double             ScalarIMF
     ,std::string const& ShortName
@@ -57,9 +48,6 @@ FundInfo::FundInfo
 {
 }
 
-//============================================================================
-FundInfo::~FundInfo() = default;
-
 namespace xml_serialize
 {
 template<> struct xml_io<FundInfo>
@@ -88,17 +76,11 @@ template<> struct xml_io<FundInfo>
 } // namespace xml_serialize
 
 //============================================================================
-FundData::FundData() = default;
-
-//============================================================================
 FundData::FundData(std::string const& a_Filename)
 {
     Read(a_Filename);
 }
 
-//============================================================================
-FundData::~FundData() = default;
-
 namespace
 {
 std::string const& xml_root_name()
diff --git a/fund_data.hpp b/fund_data.hpp
index 6e9fb5d..ecce17f 100644
--- a/fund_data.hpp
+++ b/fund_data.hpp
@@ -38,14 +38,14 @@ class LMI_SO FundInfo final
     friend class FundData;
 
   public:
-    FundInfo();
+    FundInfo() = default;
     FundInfo
         (double             ScalarIMF
         ,std::string const& ShortName
         ,std::string const& LongName
         ,std::string const& gloss = std::string()
         );
-    ~FundInfo();
+    ~FundInfo() = default;
 
     double ScalarIMF() const;
     std::string const& ShortName() const;
@@ -53,17 +53,17 @@ class LMI_SO FundInfo final
     std::string const& gloss() const;
 
   private:
-    double ScalarIMF_;
-    std::string ShortName_;
-    std::string LongName_;
-    std::string gloss_;
+    double      ScalarIMF_ = 0.0;
+    std::string ShortName_ = std::string();
+    std::string LongName_  = std::string();
+    std::string gloss_     = std::string();
 };
 
 class LMI_SO FundData final
 {
   public:
     FundData(std::string const& a_Filename);
-    ~FundData();
+    ~FundData() = default;
 
     static void write_funds_files();
     static void write_proprietary_funds_files();
@@ -72,7 +72,7 @@ class LMI_SO FundData final
     int GetNumberOfFunds() const;
 
   private:
-    FundData(); // Used by write_funds_files().
+    FundData() = default; // Used by write_funds_files().
     FundData(FundData const&) = delete;
     FundData& operator=(FundData const&) = delete;
 
diff --git a/gpt_document.cpp b/gpt_document.cpp
index 839b391..bda17fa 100644
--- a/gpt_document.cpp
+++ b/gpt_document.cpp
@@ -33,13 +33,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(gpt_document, wxDocument)
 
-gpt_document::gpt_document()
-    :wxDocument()
-{
-}
-
-gpt_document::~gpt_document() = default;
-
 gpt_view& gpt_document::PredominantView() const
 {
     return ::PredominantView<gpt_view>(*this);
diff --git a/gpt_document.hpp b/gpt_document.hpp
index 9b5e28a..6702511 100644
--- a/gpt_document.hpp
+++ b/gpt_document.hpp
@@ -38,8 +38,8 @@ class gpt_document
     friend class gpt_view;
 
   public:
-    gpt_document();
-    ~gpt_document() override;
+    gpt_document() = default;
+    ~gpt_document() override = default;
 
     gpt_view& PredominantView() const;
 
diff --git a/gpt_view.cpp b/gpt_view.cpp
index 6dd84cc..6a30e16 100644
--- a/gpt_view.cpp
+++ b/gpt_view.cpp
@@ -35,10 +35,6 @@
 #include <wx/html/htmprint.h>
 #include <wx/xrc/xmlres.h>
 
-gpt_mvc_view::gpt_mvc_view() = default;
-
-gpt_mvc_view::~gpt_mvc_view() = default;
-
 char const* gpt_mvc_view::DoBookControlName() const
 {
     return "gpt_notebook";
@@ -80,15 +76,6 @@ BEGIN_EVENT_TABLE(gpt_view, ViewEx)
     EVT_UPDATE_UI(XRCID("column_width_fixed"   
),gpt_view::UponUpdateInapplicable)
 END_EVENT_TABLE()
 
-gpt_view::gpt_view()
-    :ViewEx       ()
-    ,html_content_("Unable to display results.")
-    ,html_window_ (nullptr)
-{
-}
-
-gpt_view::~gpt_view() = default;
-
 inline gpt_input& gpt_view::input_data()
 {
     return document().doc_.input_data_;
diff --git a/gpt_view.hpp b/gpt_view.hpp
index 3582177..40e1bac 100644
--- a/gpt_view.hpp
+++ b/gpt_view.hpp
@@ -48,8 +48,8 @@ class gpt_mvc_view
     :public MvcView
 {
   public:
-    gpt_mvc_view();
-    ~gpt_mvc_view() override;
+    gpt_mvc_view() = default;
+    ~gpt_mvc_view() override = default;
 
   private:
     // MvcView required implementation.
@@ -64,8 +64,8 @@ class gpt_view final
     friend class gpt_document;
 
   public:
-    gpt_view();
-    ~gpt_view() override;
+    gpt_view() = default;
+    ~gpt_view() override = default;
 
   private:
     gpt_view(gpt_view const&) = delete;
@@ -95,8 +95,8 @@ class gpt_view final
 
     gpt_input& input_data();
 
-    std::string html_content_;
-    wxHtmlWindow* html_window_;
+    std::string html_content_ = std::string("Unable to display results.");
+    wxHtmlWindow* html_window_ = nullptr;
 
     DECLARE_DYNAMIC_CLASS(gpt_view)
     DECLARE_EVENT_TABLE()
diff --git a/gpt_xml_document.cpp b/gpt_xml_document.cpp
index ad65a5e..1971b8d 100644
--- a/gpt_xml_document.cpp
+++ b/gpt_xml_document.cpp
@@ -32,12 +32,6 @@
 #include <ostream>
 
 //============================================================================
-gpt_xml_document::gpt_xml_document()
-    :input_data_()
-{
-}
-
-//============================================================================
 gpt_xml_document::gpt_xml_document(gpt_input const& z)
     :input_data_(z)
 {
@@ -52,9 +46,6 @@ gpt_xml_document::gpt_xml_document(std::string const& 
filename)
 }
 
 //============================================================================
-gpt_xml_document::~gpt_xml_document() = default;
-
-//============================================================================
 std::string const& gpt_xml_document::xml_root_name() const
 {
     static std::string const s("gpt_xml_document");
diff --git a/gpt_xml_document.hpp b/gpt_xml_document.hpp
index 0dcc8fa..d709a16 100644
--- a/gpt_xml_document.hpp
+++ b/gpt_xml_document.hpp
@@ -37,10 +37,10 @@ class LMI_SO gpt_xml_document final
     friend class gpt_view;
 
   public:
-    gpt_xml_document();
-    gpt_xml_document(gpt_input const&);
-    gpt_xml_document(std::string const& filename);
-    ~gpt_xml_document();
+    gpt_xml_document() = default;
+    explicit gpt_xml_document(gpt_input const&);
+    explicit gpt_xml_document(std::string const& filename);
+    ~gpt_xml_document() = default;
 
     gpt_input const& input_data() const;
 
diff --git a/group_quote_pdf_gen.cpp b/group_quote_pdf_gen.cpp
index 164903a..8001a7f 100644
--- a/group_quote_pdf_gen.cpp
+++ b/group_quote_pdf_gen.cpp
@@ -45,7 +45,3 @@ std::shared_ptr<group_quote_pdf_generator> 
group_quote_pdf_generator::create()
     return group_quote_pdf_generator_create_callback()();
 }
 
-group_quote_pdf_generator::group_quote_pdf_generator() = default;
-
-group_quote_pdf_generator::~group_quote_pdf_generator() = default;
-
diff --git a/group_quote_pdf_gen.hpp b/group_quote_pdf_gen.hpp
index 05fa309..8211bbd 100644
--- a/group_quote_pdf_gen.hpp
+++ b/group_quote_pdf_gen.hpp
@@ -47,13 +47,13 @@ class LMI_SO group_quote_pdf_generator
     static bool set_creator(creator_type);
     static std::shared_ptr<group_quote_pdf_generator> create();
 
-    virtual ~group_quote_pdf_generator();
+    virtual ~group_quote_pdf_generator() = default;
 
     virtual void add_ledger(Ledger const& ledger) = 0;
     virtual void save(std::string const& output_filename) = 0;
 
   protected:
-    group_quote_pdf_generator();
+    group_quote_pdf_generator() = default;
 
   private:
     group_quote_pdf_generator(group_quote_pdf_generator const&) = delete;
diff --git a/group_quote_pdf_gen_wx.cpp b/group_quote_pdf_gen_wx.cpp
index 30af584..6f9d080 100644
--- a/group_quote_pdf_gen_wx.cpp
+++ b/group_quote_pdf_gen_wx.cpp
@@ -490,7 +490,7 @@ class group_quote_pdf_generator_wx
     static int const vert_skip   = 12;
 
     // Ctor is private as it is only used by do_create().
-    group_quote_pdf_generator_wx();
+    group_quote_pdf_generator_wx() = default;
 
     // Generate the PDF once we have all the data.
     void do_generate_pdf(wxPdfDC& pdf_dc);
@@ -612,16 +612,10 @@ class group_quote_pdf_generator_wx
         };
     page_metrics page_;
 
-    int row_num_;
-    int individual_selection_;
+    int row_num_ = 0;
+    int individual_selection_ = 99;
 };
 
-group_quote_pdf_generator_wx::group_quote_pdf_generator_wx()
-    :row_num_(0)
-    ,individual_selection_(99)
-{
-}
-
 void assert_nonblank(std::string const& value, std::string const& name)
 {
     if(std::string::npos == value.find_first_not_of(" \f\n\r\t\v"))
diff --git a/group_values.cpp b/group_values.cpp
index bfab05f..b20229e 100644
--- a/group_values.cpp
+++ b/group_values.cpp
@@ -663,10 +663,6 @@ census_run_result run_census_in_parallel::operator()
     return result;
 }
 
-run_census::run_census() = default;
-
-run_census::~run_census() = default;
-
 census_run_result run_census::operator()
     (fs::path           const& file
     ,mcenum_emission    const  emission
diff --git a/group_values.hpp b/group_values.hpp
index 77acfd7..7ac6abe 100644
--- a/group_values.hpp
+++ b/group_values.hpp
@@ -74,8 +74,8 @@ struct census_run_result
 class LMI_SO run_census final
 {
   public:
-    run_census();
-    ~run_census();
+    run_census() = default;
+    ~run_census() = default;
 
     census_run_result operator()
         (fs::path           const& file
diff --git a/illustration_document.cpp b/illustration_document.cpp
index 423dff0..e67e6b8 100644
--- a/illustration_document.cpp
+++ b/illustration_document.cpp
@@ -34,13 +34,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(IllustrationDocument, wxDocument)
 
-IllustrationDocument::IllustrationDocument()
-    :is_phony_(false)
-{
-}
-
-IllustrationDocument::~IllustrationDocument() = default;
-
 IllustrationView& IllustrationDocument::PredominantView() const
 {
     return ::PredominantView<IllustrationView>(*this);
diff --git a/illustration_document.hpp b/illustration_document.hpp
index e799961..4bb6fdc 100644
--- a/illustration_document.hpp
+++ b/illustration_document.hpp
@@ -51,8 +51,8 @@ class IllustrationDocument
     friend class IllustrationView;
 
   public:
-    IllustrationDocument();
-    ~IllustrationDocument() override;
+    IllustrationDocument() = default;
+    ~IllustrationDocument() override = default;
 
     IllustrationView& PredominantView() const;
 
@@ -72,7 +72,7 @@ class IllustrationDocument
 
     single_cell_document doc_;
 
-    bool is_phony_;
+    bool is_phony_ = false;
 
     DECLARE_DYNAMIC_CLASS(IllustrationDocument)
 };
diff --git a/illustration_view.cpp b/illustration_view.cpp
index 5ccc0b8..a8815b7 100644
--- a/illustration_view.cpp
+++ b/illustration_view.cpp
@@ -96,15 +96,6 @@ BEGIN_EVENT_TABLE(IllustrationView, ViewEx)
     EVT_UPDATE_UI(XRCID("column_width_fixed"   
),IllustrationView::UponUpdateInapplicable )
 END_EVENT_TABLE()
 
-IllustrationView::IllustrationView()
-    :ViewEx                  ()
-    ,html_window_            (nullptr)
-    ,is_phony_               (false)
-{
-}
-
-IllustrationView::~IllustrationView() = default;
-
 inline Input& IllustrationView::input_data()
 {
     return document().doc_.input_data_;
diff --git a/illustration_view.hpp b/illustration_view.hpp
index 5191ca8..ec857cf 100644
--- a/illustration_view.hpp
+++ b/illustration_view.hpp
@@ -55,8 +55,8 @@ class IllustrationView final
     friend class IllustrationDocument;
 
   public:
-    IllustrationView();
-    ~IllustrationView() override;
+    IllustrationView() = default;
+    ~IllustrationView() override = default;
 
     // Making these functions public so that they can be invoked by
     // class CensusView is arguably less bad than making that class a
@@ -99,8 +99,8 @@ class IllustrationView final
 
     Input& input_data();
 
-    wxHtmlWindow* html_window_;
-    bool is_phony_;
+    wxHtmlWindow* html_window_ = nullptr;
+    bool is_phony_             = false;
     std::shared_ptr<Ledger const> ledger_values_;
 
     DECLARE_DYNAMIC_CLASS(IllustrationView)
diff --git a/input_sequence_entry.cpp b/input_sequence_entry.cpp
index b428c7e..05197c5 100644
--- a/input_sequence_entry.cpp
+++ b/input_sequence_entry.cpp
@@ -1378,11 +1378,6 @@ InputSequenceButton::InputSequenceButton(wxWindow* 
parent, wxWindowID id)
 
 } // Unnamed namespace.
 
-InputSequenceEntry::InputSequenceEntry()
-    :input_(nullptr)
-{
-}
-
 InputSequenceEntry::InputSequenceEntry
     (wxWindow*          parent
     ,wxWindowID         id
diff --git a/input_sequence_entry.hpp b/input_sequence_entry.hpp
index 3ae9113..d8b03ca 100644
--- a/input_sequence_entry.hpp
+++ b/input_sequence_entry.hpp
@@ -39,7 +39,7 @@ class InputSequenceEntry
     :public wxPanel
 {
   public:
-    InputSequenceEntry();
+    InputSequenceEntry() = default;
     InputSequenceEntry(wxWindow* parent, wxWindowID id, wxString const& name);
     bool Create(wxWindow* parent, wxWindowID id, wxString const& name);
 
@@ -60,7 +60,7 @@ class InputSequenceEntry
 
     void DoOpenEditor();
 
-    Input const* input_;
+    Input const* input_ = nullptr;
     std::string field_name_;
 
     wxTextCtrl* text_;
diff --git a/ledger_variant.cpp b/ledger_variant.cpp
index e6483c6..f79ff25 100644
--- a/ledger_variant.cpp
+++ b/ledger_variant.cpp
@@ -361,15 +361,11 @@ void LedgerVariant::Spew(std::ostream& os) const
     LedgerBase::Spew(os);
 }
 
-ledger_map_holder::ledger_map_holder() = default;
-
 ledger_map_holder::ledger_map_holder(ledger_map_t const& z)
     :held_(z)
 {
 }
 
-ledger_map_holder::~ledger_map_holder() = default;
-
 ledger_map_t const& ledger_map_holder::held() const
 {
     return held_;
diff --git a/ledger_variant.hpp b/ledger_variant.hpp
index 57f67c9..a5a8ab2 100644
--- a/ledger_variant.hpp
+++ b/ledger_variant.hpp
@@ -174,9 +174,9 @@ class ledger_map_holder
     friend class Ledger;
 
   public:
-    ledger_map_holder();
+    ledger_map_holder() = default;
     explicit ledger_map_holder(ledger_map_t const&);
-    ~ledger_map_holder();
+    ~ledger_map_holder() = default;
 
     ledger_map_t const& held() const;
 
diff --git a/loads.cpp b/loads.cpp
index af5aca2..9754aff 100644
--- a/loads.cpp
+++ b/loads.cpp
@@ -34,10 +34,6 @@
 #include "mc_enum_types_aux.hpp"        // mc_n_ enumerators
 #include "premium_tax.hpp"
 
-/// Ctor for unit testing.
-
-Loads::Loads() = default;
-
 /// Ctor for production branch.
 
 Loads::Loads(BasicValues& V)
diff --git a/loads.hpp b/loads.hpp
index f4b12f8..9dee505 100644
--- a/loads.hpp
+++ b/loads.hpp
@@ -72,7 +72,7 @@ class Loads
     std::vector<double> const& excess_premium_load_minimum_premium_tax() const;
 
   private:
-    Loads(); // Ctor for unit testing.
+    Loads() = default; // Ctor for unit testing.
 
     void Allocate(int length);
     void Initialize(product_database const&);
diff --git a/main_wx_test.cpp b/main_wx_test.cpp
index 887bed3..c8f30b2 100644
--- a/main_wx_test.cpp
+++ b/main_wx_test.cpp
@@ -178,7 +178,7 @@ class application_test final
     bool is_distribution_test() const { return is_distribution_test_; }
 
   private:
-    application_test();
+    application_test() = default;
     application_test(application_test const&) = delete;
     application_test& operator=(application_test const&) = delete;
 
@@ -230,17 +230,11 @@ class application_test final
 
     fs::path test_files_path_;
 
-    bool run_all_;
+    bool run_all_ = true;
 
-    bool is_distribution_test_;
+    bool is_distribution_test_ = false;
 };
 
-application_test::application_test()
-    :run_all_(true)
-    ,is_distribution_test_(false)
-{
-}
-
 application_test& application_test::instance()
 {
     static application_test z;
diff --git a/mec_document.cpp b/mec_document.cpp
index ad2d0a3..d6f67f1 100644
--- a/mec_document.cpp
+++ b/mec_document.cpp
@@ -33,13 +33,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(mec_document, wxDocument)
 
-mec_document::mec_document()
-    :wxDocument()
-{
-}
-
-mec_document::~mec_document() = default;
-
 mec_view& mec_document::PredominantView() const
 {
     return ::PredominantView<mec_view>(*this);
diff --git a/mec_document.hpp b/mec_document.hpp
index a72be87..a04fc23 100644
--- a/mec_document.hpp
+++ b/mec_document.hpp
@@ -38,8 +38,8 @@ class mec_document
     friend class mec_view;
 
   public:
-    mec_document();
-    ~mec_document() override;
+    mec_document() = default;
+    ~mec_document() override = default;
 
     mec_view& PredominantView() const;
 
diff --git a/mec_view.cpp b/mec_view.cpp
index ade9070..fdebc40 100644
--- a/mec_view.cpp
+++ b/mec_view.cpp
@@ -35,10 +35,6 @@
 #include <wx/html/htmprint.h>
 #include <wx/xrc/xmlres.h>
 
-mec_mvc_view::mec_mvc_view() = default;
-
-mec_mvc_view::~mec_mvc_view() = default;
-
 char const* mec_mvc_view::DoBookControlName() const
 {
     return "mec_notebook";
@@ -80,15 +76,6 @@ BEGIN_EVENT_TABLE(mec_view, ViewEx)
     EVT_UPDATE_UI(XRCID("column_width_fixed"   
),mec_view::UponUpdateInapplicable)
 END_EVENT_TABLE()
 
-mec_view::mec_view()
-    :ViewEx       ()
-    ,html_content_("Unable to display results.")
-    ,html_window_ (nullptr)
-{
-}
-
-mec_view::~mec_view() = default;
-
 inline mec_input& mec_view::input_data()
 {
     return document().doc_.input_data_;
diff --git a/mec_view.hpp b/mec_view.hpp
index d301f45..b077c0a 100644
--- a/mec_view.hpp
+++ b/mec_view.hpp
@@ -48,8 +48,8 @@ class mec_mvc_view
     :public MvcView
 {
   public:
-    mec_mvc_view();
-    ~mec_mvc_view() override;
+    mec_mvc_view() = default;
+    ~mec_mvc_view() override = default;
 
   private:
     // MvcView required implementation.
@@ -64,8 +64,8 @@ class mec_view final
     friend class mec_document;
 
   public:
-    mec_view();
-    ~mec_view() override;
+    mec_view() = default;
+    ~mec_view() override = default;
 
   private:
     mec_view(mec_view const&) = delete;
@@ -95,8 +95,8 @@ class mec_view final
 
     mec_input& input_data();
 
-    std::string html_content_;
-    wxHtmlWindow* html_window_;
+    std::string html_content_  = std::string("Unable to display results.");
+    wxHtmlWindow* html_window_ = nullptr;
 
     DECLARE_DYNAMIC_CLASS(mec_view)
     DECLARE_EVENT_TABLE()
diff --git a/mec_xml_document.cpp b/mec_xml_document.cpp
index b92f41e..592f291 100644
--- a/mec_xml_document.cpp
+++ b/mec_xml_document.cpp
@@ -32,12 +32,6 @@
 #include <ostream>
 
 //============================================================================
-mec_xml_document::mec_xml_document()
-    :input_data_()
-{
-}
-
-//============================================================================
 mec_xml_document::mec_xml_document(mec_input const& z)
     :input_data_(z)
 {
@@ -52,9 +46,6 @@ mec_xml_document::mec_xml_document(std::string const& 
filename)
 }
 
 //============================================================================
-mec_xml_document::~mec_xml_document() = default;
-
-//============================================================================
 std::string const& mec_xml_document::xml_root_name() const
 {
     static std::string const s("mec_xml_document");
diff --git a/mec_xml_document.hpp b/mec_xml_document.hpp
index 0aa61fa..4aa0739 100644
--- a/mec_xml_document.hpp
+++ b/mec_xml_document.hpp
@@ -37,10 +37,10 @@ class LMI_SO mec_xml_document final
     friend class mec_view;
 
   public:
-    mec_xml_document();
+    mec_xml_document() = default;
     mec_xml_document(mec_input const&);
     mec_xml_document(std::string const& filename);
-    ~mec_xml_document();
+    ~mec_xml_document() = default;
 
     mec_input const& input_data() const;
 
diff --git a/mvc_model.cpp b/mvc_model.cpp
index b72075e..dc6242d 100644
--- a/mvc_model.cpp
+++ b/mvc_model.cpp
@@ -64,10 +64,6 @@ void ComplainAboutAnyDiscrepancies
 }
 } // Unnamed namespace.
 
-MvcModel::MvcModel() = default;
-
-MvcModel::~MvcModel() = default;
-
 datum_base const* MvcModel::BaseDatumPointer(std::string const& name) const
 {
     return DoBaseDatumPointer(name);
diff --git a/mvc_model.hpp b/mvc_model.hpp
index 8e73a38..528154e 100644
--- a/mvc_model.hpp
+++ b/mvc_model.hpp
@@ -120,8 +120,8 @@ class LMI_SO MvcModel
     typedef std::vector<std::string> NamesType;
     typedef std::map<std::string,std::string> StateType;
 
-    MvcModel();
-    virtual ~MvcModel();
+    MvcModel() = default;
+    virtual ~MvcModel() = default;
 
     datum_base const* BaseDatumPointer(std::string const&) const;
 
diff --git a/mvc_view.cpp b/mvc_view.cpp
index 730526b..c880fbf 100644
--- a/mvc_view.cpp
+++ b/mvc_view.cpp
@@ -23,10 +23,6 @@
 
 #include "mvc_view.hpp"
 
-MvcView::MvcView() = default;
-
-MvcView::~MvcView() = default;
-
 char const* MvcView::BookControlName() const
 {
     return DoBookControlName();
diff --git a/mvc_view.hpp b/mvc_view.hpp
index 464e6cc..052a54e 100644
--- a/mvc_view.hpp
+++ b/mvc_view.hpp
@@ -43,8 +43,8 @@
 class MvcView
 {
   public:
-    MvcView();
-    virtual ~MvcView();
+    MvcView() = default;
+    virtual ~MvcView() = default;
 
     char const* BookControlName () const;
     char const* MainDialogName  () const;
diff --git a/policy_view.cpp b/policy_view.cpp
index 1242b5d..c155e72 100644
--- a/policy_view.cpp
+++ b/policy_view.cpp
@@ -34,14 +34,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(PolicyView, ProductEditorView)
 
-PolicyView::PolicyView()
-    :ProductEditorView()
-    ,controls_()
-{
-}
-
-PolicyView::~PolicyView() = default;
-
 wxWindow* PolicyView::CreateChildWindow()
 {
     wxWindow* frame = GetFrame();
diff --git a/policy_view.hpp b/policy_view.hpp
index 6e6ad60..d9c828a 100644
--- a/policy_view.hpp
+++ b/policy_view.hpp
@@ -36,8 +36,8 @@ class PolicyView final
     :public ProductEditorView
 {
   public:
-    PolicyView();
-    ~PolicyView() override;
+    PolicyView() = default;
+    ~PolicyView() override = default;
 
     typedef std::map<std::string, wxTextCtrl*> controls_type;
     controls_type&       controls();
diff --git a/preferences_view.cpp b/preferences_view.cpp
index 91510a4..64954b5 100644
--- a/preferences_view.cpp
+++ b/preferences_view.cpp
@@ -23,10 +23,6 @@
 
 #include "preferences_view.hpp"
 
-PreferencesView::PreferencesView() = default;
-
-PreferencesView::~PreferencesView() = default;
-
 char const* PreferencesView::DoBookControlName() const
 {
     return "preferences_notebook";
diff --git a/preferences_view.hpp b/preferences_view.hpp
index cb38a4c..2f1876d 100644
--- a/preferences_view.hpp
+++ b/preferences_view.hpp
@@ -38,8 +38,8 @@ class PreferencesView
     :public MvcView
 {
   public:
-    PreferencesView();
-    ~PreferencesView() override;
+    PreferencesView() = default;
+    ~PreferencesView() override = default;
 
   private:
     // MvcView required implementation.
diff --git a/product_editor.cpp b/product_editor.cpp
index a6af8bb..aad6158 100644
--- a/product_editor.cpp
+++ b/product_editor.cpp
@@ -33,13 +33,6 @@
 #include <wx/treectrl.h>
 #include <wx/window.h>
 
-ProductEditorDocument::ProductEditorDocument()
-    :wxDocument()
-{
-}
-
-ProductEditorDocument::~ProductEditorDocument() = default;
-
 ProductEditorView& ProductEditorDocument::PredominantView() const
 {
     return ::PredominantView<ProductEditorView>(*this);
@@ -113,23 +106,6 @@ bool ProductEditorDocument::DoSaveDocument(wxString const& 
filename)
         }
 }
 
-ProductEditorView::ProductEditorView()
-    :ViewEx()
-{
-}
-
-ProductEditorView::~ProductEditorView() = default;
-
-TreeGridViewBase::TreeGridViewBase()
-    :ProductEditorView()
-    ,grid_(nullptr)
-    ,grid_label_(nullptr)
-    ,tree_(nullptr)
-{
-}
-
-TreeGridViewBase::~TreeGridViewBase() = default;
-
 wxTreeCtrl& TreeGridViewBase::tree() const
 {
     if(!tree_)
diff --git a/product_editor.hpp b/product_editor.hpp
index 14e0b17..062fe3f 100644
--- a/product_editor.hpp
+++ b/product_editor.hpp
@@ -45,8 +45,8 @@ class ProductEditorDocument
     :public wxDocument
 {
   public:
-    ProductEditorDocument();
-    ~ProductEditorDocument() override;
+    ProductEditorDocument() = default;
+    ~ProductEditorDocument() override = default;
 
   protected:
     virtual void ReadDocument (std::string const& filename) = 0;
@@ -73,8 +73,8 @@ class ProductEditorView
     friend class ProductEditorDocument;
 
   public:
-    ProductEditorView();
-    ~ProductEditorView() override;
+    ProductEditorView() = default;
+    ~ProductEditorView() override = default;
 
   protected:
     virtual bool IsModified() const = 0;
@@ -92,8 +92,8 @@ class TreeGridViewBase
     :public ProductEditorView
 {
   public:
-    TreeGridViewBase();
-    ~TreeGridViewBase() override;
+    TreeGridViewBase() = default;
+    ~TreeGridViewBase() override = default;
 
   protected:
     MultiDimGrid& grid() const;
@@ -117,9 +117,9 @@ class TreeGridViewBase
 
     // These objects are held by pointer since the destruction is taken care
     // of by wx.
-    MultiDimGrid* grid_;
-    wxStaticText* grid_label_;
-    wxTreeCtrl*   tree_;
+    MultiDimGrid* grid_       = nullptr;
+    wxStaticText* grid_label_ = nullptr;
+    wxTreeCtrl*   tree_       = nullptr;
 };
 
 #endif // product_editor_hpp
diff --git a/rounding_rules.cpp b/rounding_rules.cpp
index fb0dc5d..7f66e8d 100644
--- a/rounding_rules.cpp
+++ b/rounding_rules.cpp
@@ -83,15 +83,6 @@ template<> rounding_parameters 
value_cast<rounding_parameters>(std::string const
     throw "Unreachable--silences a compiler diagnostic.";
 }
 
-/// Private default ctor, for friends only.
-
-rounding_parameters::rounding_parameters()
-    :decimals_ (0              )
-    ,style_    (r_indeterminate)
-    ,gloss_    (""             )
-{
-}
-
 /// Construct from components.
 ///
 /// The type of the 'style' argument is 'rounding_style', rather than
@@ -110,8 +101,6 @@ rounding_parameters::rounding_parameters
 {
 }
 
-rounding_parameters::~rounding_parameters() = default;
-
 bool rounding_parameters::operator==(rounding_parameters const& z) const
 {
     return z.decimals_ == decimals_ && z.style_ == style_ && z.gloss_ == 
gloss_;
@@ -201,8 +190,6 @@ rounding_rules::rounding_rules(std::string const& filename)
     LMI_ASSERT(r_not_at_all == round_min_init_premium_  .style() || r_upward   
== round_min_init_premium_  .style());
 }
 
-rounding_rules::~rounding_rules() = default;
-
 /// Member datum nominated by the given name.
 
 rounding_parameters const& rounding_rules::datum(std::string const& name) const
diff --git a/rounding_rules.hpp b/rounding_rules.hpp
index a1e74ea..cd1e418 100644
--- a/rounding_rules.hpp
+++ b/rounding_rules.hpp
@@ -46,7 +46,7 @@ class LMI_SO rounding_parameters final
         ,rounding_style     style
         ,std::string const& gloss = std::string()
         );
-    ~rounding_parameters();
+    ~rounding_parameters() = default;
 
     bool operator==(rounding_parameters const&) const;
 
@@ -57,11 +57,12 @@ class LMI_SO rounding_parameters final
     rounding_style            raw_style() const;
 
   private:
-    rounding_parameters();
+    /// Private default ctor, for friends only.
+    rounding_parameters() = default;
 
-    int                decimals_;
-    mce_rounding_style style_   ;
-    std::string        gloss_   ;
+    int                decimals_ = 0;
+    mce_rounding_style style_    = mce_rounding_style(r_indeterminate);
+    std::string        gloss_    = std::string();
 };
 
 /// Product rounding rules.
@@ -95,7 +96,7 @@ class LMI_SO rounding_rules final
 
   public:
     explicit rounding_rules(std::string const& filename);
-    ~rounding_rules() override;
+    ~rounding_rules() override = default;
 
     rounding_parameters const& datum(std::string const& name) const;
 
diff --git a/rounding_view.cpp b/rounding_view.cpp
index 3e7e069..d87a889 100644
--- a/rounding_view.cpp
+++ b/rounding_view.cpp
@@ -34,14 +34,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(RoundingView, ProductEditorView)
 
-RoundingView::RoundingView()
-    :ProductEditorView()
-    ,controls_()
-{
-}
-
-RoundingView::~RoundingView() = default;
-
 wxWindow* RoundingView::CreateChildWindow()
 {
     wxWindow* frame = GetFrame();
diff --git a/rounding_view.hpp b/rounding_view.hpp
index 582c8dd..3e73c63 100644
--- a/rounding_view.hpp
+++ b/rounding_view.hpp
@@ -35,8 +35,8 @@ class RoundingView final
     :public ProductEditorView
 {
   public:
-    RoundingView();
-    ~RoundingView() override;
+    RoundingView() = default;
+    ~RoundingView() override = default;
 
     typedef std::map<std::string, RoundingButtons*> controls_type;
     controls_type&       controls();
diff --git a/single_cell_document.cpp b/single_cell_document.cpp
index e0fba3a..7102438 100644
--- a/single_cell_document.cpp
+++ b/single_cell_document.cpp
@@ -39,12 +39,6 @@
 #include <sstream>
 
 //============================================================================
-single_cell_document::single_cell_document()
-    :input_data_()
-{
-}
-
-//============================================================================
 single_cell_document::single_cell_document(Input const& z)
     :input_data_(z)
 {
@@ -59,9 +53,6 @@ single_cell_document::single_cell_document(std::string const& 
filename)
     parse(parser);
 }
 
-//============================================================================
-single_cell_document::~single_cell_document() = default;
-
 /// Backward-compatibility serial number of this class's xml version.
 ///
 /// What is now called version 0 had no "version" attribute.
diff --git a/single_cell_document.hpp b/single_cell_document.hpp
index def610b..81ecfa4 100644
--- a/single_cell_document.hpp
+++ b/single_cell_document.hpp
@@ -38,10 +38,10 @@ class LMI_SO single_cell_document final
     friend class input_test; // For mete_ill_xsd().
 
   public:
-    single_cell_document();
+    single_cell_document() = default;
     single_cell_document(Input const&);
     single_cell_document(std::string const& filename);
-    ~single_cell_document();
+    ~single_cell_document() = default;
 
     Input const& input_data() const;
 
diff --git a/stratified_charges.cpp b/stratified_charges.cpp
index f284287..11e4bf9 100644
--- a/stratified_charges.cpp
+++ b/stratified_charges.cpp
@@ -82,8 +82,6 @@ template<> stratified_entity 
value_cast<stratified_entity>(std::string const&)
 
 // Class stratified_entity implementation.
 
-stratified_entity::stratified_entity() = default;
-
 stratified_entity::stratified_entity
     (std::vector<double> const& limits
     ,std::vector<double> const& values
@@ -96,8 +94,6 @@ stratified_entity::stratified_entity
     assert_validity();
 }
 
-stratified_entity::~stratified_entity() = default;
-
 bool stratified_entity::operator==(stratified_entity const& z) const
 {
     return
@@ -183,8 +179,6 @@ stratified_charges::stratified_charges(stratified_charges 
const& z)
     MemberSymbolTable<stratified_charges>::assign(z);
 }
 
-stratified_charges::~stratified_charges() = default;
-
 stratified_charges& stratified_charges::operator=(stratified_charges const& z)
 {
     MemberSymbolTable<stratified_charges>::assign(z);
diff --git a/stratified_charges.hpp b/stratified_charges.hpp
index c3835c2..dd6c39e 100644
--- a/stratified_charges.hpp
+++ b/stratified_charges.hpp
@@ -69,13 +69,13 @@ class LMI_SO stratified_entity final
     friend class TierView;
 
   public:
-    stratified_entity();
+    stratified_entity() = default;
     stratified_entity
         (std::vector<double> const& limits
         ,std::vector<double> const& values
         ,std::string const&         gloss = std::string()
         );
-    ~stratified_entity();
+    ~stratified_entity() = default;
 
     bool operator==(stratified_entity const&) const;
 
@@ -105,7 +105,7 @@ class LMI_SO stratified_charges final
   public:
     stratified_charges(std::string const& filename);
     stratified_charges(stratified_charges const&);
-    ~stratified_charges() override;
+    ~stratified_charges() override = default;
 
     stratified_charges& operator=(stratified_charges const&);
 
diff --git a/test_coding_rules.cpp b/test_coding_rules.cpp
index a4324f0..61d1e14 100644
--- a/test_coding_rules.cpp
+++ b/test_coding_rules.cpp
@@ -1071,7 +1071,7 @@ void enforce_taboos(file const& f)
 class statistics
 {
   public:
-    statistics() : files_(0), lines_(0), defects_(0) {}
+    statistics() = default;
     ~statistics() = default;
 
     statistics& operator+=(statistics const&);
@@ -1081,9 +1081,9 @@ class statistics
     void print_summary() const;
 
   private:
-    std::size_t files_;
-    std::size_t lines_;
-    std::size_t defects_;
+    std::size_t files_   = 0;
+    std::size_t lines_   = 0;
+    std::size_t defects_ = 0;
 };
 
 statistics& statistics::operator+=(statistics const& z)
diff --git a/text_doc.cpp b/text_doc.cpp
index 6d3339a..6ed3c9e 100644
--- a/text_doc.cpp
+++ b/text_doc.cpp
@@ -39,13 +39,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument)
 
-TextEditDocument::TextEditDocument()
-    :wxDocument()
-{
-}
-
-TextEditDocument::~TextEditDocument() = default;
-
 wxTextCtrl& TextEditDocument::PredominantViewWindow() const
 {
     return ::PredominantViewWindow<TextEditView,wxTextCtrl>
diff --git a/text_doc.hpp b/text_doc.hpp
index 5e81db1..a85a648 100644
--- a/text_doc.hpp
+++ b/text_doc.hpp
@@ -40,8 +40,8 @@ class TextEditDocument
     :public wxDocument
 {
   public:
-    TextEditDocument();
-    ~TextEditDocument() override;
+    TextEditDocument() = default;
+    ~TextEditDocument() override = default;
 
   private:
     // wxDocument overrides.
diff --git a/text_view.cpp b/text_view.cpp
index 5bceab7..6592136 100644
--- a/text_view.cpp
+++ b/text_view.cpp
@@ -39,14 +39,6 @@
 
 IMPLEMENT_DYNAMIC_CLASS(TextEditView, ViewEx)
 
-TextEditView::TextEditView()
-    :ViewEx      ()
-    ,text_window_(nullptr)
-{
-}
-
-TextEditView::~TextEditView() = default;
-
 wxWindow* TextEditView::CreateChildWindow()
 {
     return text_window_ = new(wx) wxTextCtrl
diff --git a/text_view.hpp b/text_view.hpp
index a17b285..a4745fe 100644
--- a/text_view.hpp
+++ b/text_view.hpp
@@ -52,8 +52,8 @@ class TextEditView final
     friend class TextEditDocument;
 
   public:
-    TextEditView();
-    ~TextEditView() override;
+    TextEditView() = default;
+    ~TextEditView() override = default;
 
   private:
     TextEditView(TextEditView const&) = delete;
@@ -64,7 +64,7 @@ class TextEditView final
     char const* icon_xrc_resource   () const override;
     char const* menubar_xrc_resource() const override;
 
-    wxTextCtrl* text_window_;
+    wxTextCtrl* text_window_ = nullptr;
 
     DECLARE_DYNAMIC_CLASS(TextEditView)
 };
diff --git a/view_ex.cpp b/view_ex.cpp
index 5be4c42..8d47773 100644
--- a/view_ex.cpp
+++ b/view_ex.cpp
@@ -59,13 +59,6 @@
 
 IMPLEMENT_ABSTRACT_CLASS(ViewEx, wxView)
 
-ViewEx::ViewEx()
-    :wxView()
-{
-}
-
-ViewEx::~ViewEx() = default;
-
 DocManagerEx& ViewEx::DocManager() const
 {
     return safely_dereference_as<DocManagerEx>(GetDocumentManager());
diff --git a/view_ex.hpp b/view_ex.hpp
index 4588c5e..c5783f6 100644
--- a/view_ex.hpp
+++ b/view_ex.hpp
@@ -85,13 +85,13 @@ class ViewEx
     :public wxView
 {
   public:
-    ViewEx();
+    ViewEx() = default;
 
     wxIcon     Icon   () const;
     wxMenuBar* MenuBar() const;
 
   protected:
-    ~ViewEx() override;
+    ~ViewEx() override = default;
 
     wxFrame& FrameWindow() const;
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]