lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 5e67683: Use C++11 "override" keyword whereve


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 5e67683: Use C++11 "override" keyword wherever it is appropriate (VZ)
Date: Tue, 10 Jan 2017 04:41:05 +0000 (UTC)

branch: master
commit 5e67683576fe7f377a6eee4d8b412674413a11c3
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Use C++11 "override" keyword wherever it is appropriate (VZ)
    
    This change is the result of running clang-tidy with
      "modernize-use-override" check and
      -header-filter='.*\.[ht]pp' option
    on all *.cpp files.
    
    * configure.ac: Now that "override" is used across the entire code
    base and not just in wxWidgets headers,
      -Wno-inconsistent-missing-override
    is not needed anymore and can be removed so that any missing
    occurrences of the "override" keyword are flagged in the future.
---
 about_dialog.hpp                |    4 +-
 account_value.hpp               |    2 +-
 alert.cpp                       |   10 ++--
 any_member.hpp                  |   22 ++++----
 any_member_test.cpp             |    2 +-
 ce_product_name.hpp             |   14 +++---
 ce_skin_name.hpp                |   14 +++---
 census_document.hpp             |    8 +--
 census_view.cpp                 |  106 +++++++++++++++++++--------------------
 census_view.hpp                 |    6 +--
 comma_punct.hpp                 |    4 +-
 configurable_settings.hpp       |   18 +++----
 configure.ac                    |    1 -
 database_document.hpp           |    6 +--
 database_view.cpp               |    2 +-
 database_view.hpp               |   16 +++---
 database_view_editor.hpp        |   16 +++---
 datum_boolean.hpp               |    6 +--
 datum_sequence.hpp              |   36 ++++++-------
 datum_string.hpp                |    6 +--
 dbdict.hpp                      |   18 +++----
 default_view.hpp                |    8 +--
 docmanager_ex.hpp               |    6 +--
 gpt_document.hpp                |    8 +--
 gpt_input.hpp                   |   40 +++++++--------
 gpt_state.hpp                   |    8 +--
 gpt_view.hpp                    |   20 ++++----
 group_quote_pdf_gen_wx.cpp      |    4 +-
 icon_monger.hpp                 |    6 +--
 illustration_document.hpp       |    8 +--
 illustration_view.hpp           |   10 ++--
 input.hpp                       |   40 +++++++--------
 input_sequence_entry.cpp        |    2 +-
 input_sequence_entry.hpp        |    4 +-
 ledger_invariant.hpp            |    8 +--
 ledger_variant.hpp              |    8 +--
 main_wx_test.cpp                |   18 +++----
 mc_enum.hpp                     |   14 +++---
 mec_document.hpp                |    8 +--
 mec_input.hpp                   |   40 +++++++--------
 mec_state.hpp                   |    8 +--
 mec_view.hpp                    |   20 ++++----
 multidimgrid_any.cpp            |    4 +-
 multidimgrid_any.hpp            |   16 +++---
 multidimgrid_safe.hpp           |   28 +++++------
 multidimgrid_tools.hpp          |   14 +++---
 mvc_controller.hpp              |    4 +-
 null_stream.cpp                 |    4 +-
 policy_document.hpp             |    6 +--
 policy_view.hpp                 |   12 ++---
 preferences_model.hpp           |   24 ++++-----
 preferences_view.hpp            |    8 +--
 previewframe_ex.hpp             |    4 +-
 product_data.hpp                |   32 ++++++------
 product_editor.hpp              |   16 +++---
 progress_meter_cgi.cpp          |    8 +--
 progress_meter_cli.cpp          |    8 +--
 progress_meter_wx.cpp           |   10 ++--
 rounding_document.hpp           |    6 +--
 rounding_rules.hpp              |   18 +++----
 rounding_view.hpp               |   12 ++---
 rounding_view_editor.hpp        |    6 +--
 single_choice_popup_menu.hpp    |    2 +-
 skeleton.hpp                    |   14 +++---
 stratified_charges.hpp          |   18 +++----
 text_doc.hpp                    |   10 ++--
 text_view.hpp                   |    8 +--
 tier_document.hpp               |    6 +--
 tier_view.cpp                   |    2 +-
 tier_view.hpp                   |   16 +++---
 tier_view_editor.hpp            |   32 ++++++------
 tn_range.hpp                    |   20 ++++----
 tn_range_test.cpp               |   24 ++++-----
 tn_range_test_aux.hpp           |   12 ++---
 tn_range_type_trammels.hpp      |   54 ++++++++++----------
 transferor.hpp                  |   10 ++--
 view_ex.hpp                     |    8 +--
 wx_test_about_version.cpp       |    8 +--
 wx_test_calculation_summary.cpp |   12 ++---
 wx_test_default_update.cpp      |    4 +-
 wx_test_input_sequences.cpp     |    4 +-
 wx_test_input_validation.cpp    |    4 +-
 wx_test_paste_census.cpp        |    8 +--
 wx_test_validate_output.cpp     |   14 +++---
 84 files changed, 567 insertions(+), 568 deletions(-)

diff --git a/about_dialog.hpp b/about_dialog.hpp
index 3518206..c16e5e6 100644
--- a/about_dialog.hpp
+++ b/about_dialog.hpp
@@ -56,10 +56,10 @@ class AboutDialog
 {
   public:
     AboutDialog(wxWindow* parent);
-    virtual ~AboutDialog();
+    ~AboutDialog() override;
 
     // wxDialog overrides.
-    virtual int ShowModal();
+    int ShowModal() override;
 
   private:
     void UponReadLicense(wxCommandEvent&);
diff --git a/account_value.hpp b/account_value.hpp
index ce14491..675ad58 100644
--- a/account_value.hpp
+++ b/account_value.hpp
@@ -59,7 +59,7 @@ class LMI_SO AccountValue
     enum {months_per_year = 12};
 
     explicit AccountValue(Input const& input);
-    ~AccountValue();
+    ~AccountValue() override;
 
     double RunAV                ();
 
diff --git a/alert.cpp b/alert.cpp
index 11b7753..1fa70b2 100644
--- a/alert.cpp
+++ b/alert.cpp
@@ -130,7 +130,7 @@ class alert_buf
                 );
             }
         }
-    int sync()
+    int sync() override
         {
         raise_alert();
         return 0;
@@ -153,7 +153,7 @@ class alert_buf
 class status_buf
     :public alert_buf
 {
-    void raise_alert()
+    void raise_alert() override
         {
         status_alert_function(alert_string());
         }
@@ -162,7 +162,7 @@ class status_buf
 class warning_buf
     :public alert_buf
 {
-    void raise_alert()
+    void raise_alert() override
         {
         warning_alert_function(alert_string());
         }
@@ -171,7 +171,7 @@ class warning_buf
 class hobsons_choice_buf
     :public alert_buf
 {
-    void raise_alert()
+    void raise_alert() override
         {
         hobsons_choice_alert_function(alert_string());
         }
@@ -180,7 +180,7 @@ class hobsons_choice_buf
 class fatal_error_buf
     :public alert_buf
 {
-    void raise_alert()
+    void raise_alert() override
         {
         fatal_error_alert_function(alert_string());
         }
diff --git a/any_member.hpp b/any_member.hpp
index 3b1b4e6..3a35ae6 100644
--- a/any_member.hpp
+++ b/any_member.hpp
@@ -122,15 +122,15 @@ class holder
 
   public:
     holder(ClassType*, ValueType const&);
-    virtual ~holder();
+    ~holder() override;
 
     // placeholder required implementation.
-    virtual holder& assign(placeholder const&);
-    virtual holder& assign(std::string const&);
-    virtual placeholder* clone() const;
-    virtual bool equals(placeholder const&) const;
-    virtual std::string str() const;
-    virtual std::type_info const& type() const;
+    holder& assign(placeholder const&) override;
+    holder& assign(std::string const&) override;
+    placeholder* clone() const override;
+    bool equals(placeholder const&) const override;
+    std::string str() const override;
+    std::type_info const& type() const override;
 #if defined LMI_MSC
     virtual void* defraud() const;
 #endif // defined LMI_MSC
@@ -248,7 +248,7 @@ class any_member
   public:
     any_member();
     any_member(any_member const&);
-    virtual ~any_member();
+    ~any_member() override;
 
     template<typename ValueType>
     any_member(ClassType*, ValueType const&);
@@ -260,15 +260,15 @@ class any_member
     bool operator!=(any_member const&) const;
 
     // any_entity required implementation.
-    virtual std::string str() const;
-    virtual std::type_info const& type() const;
+    std::string str() const override;
+    std::type_info const& type() const override;
 
   private:
     template<typename ExactMemberType>
     ExactMemberType* exact_cast();
 
     // any_entity required implementation.
-    virtual any_member& assign(std::string const&);
+    any_member& assign(std::string const&) override;
 
     ClassType* object_;
     placeholder* content_;
diff --git a/any_member_test.cpp b/any_member_test.cpp
index bb1217c..8817332 100644
--- a/any_member_test.cpp
+++ b/any_member_test.cpp
@@ -61,7 +61,7 @@ struct derived_datum
 {
     bool operator==(derived_datum const& z) const
         {return 7 == sane && 7 == z.sane;}
-    virtual int virtual_function() {return 1729;}
+    int virtual_function() override {return 1729;}
 };
 
 // Unused stub.
diff --git a/ce_product_name.hpp b/ce_product_name.hpp
index e82240b..3b01234 100644
--- a/ce_product_name.hpp
+++ b/ce_product_name.hpp
@@ -68,19 +68,19 @@ class ce_product_name
     static std::size_t ordinal(std::string const&);
 
     // mc_enum_base required implementation.
-    virtual std::vector<std::string> const& all_strings() const;
-    virtual std::size_t cardinality() const;
-    virtual void enforce_proscription();
-    virtual std::size_t ordinal() const;
-    virtual std::string str(int) const;
+    std::vector<std::string> const& all_strings() const override;
+    std::size_t cardinality() const override;
+    void enforce_proscription() override;
+    std::size_t ordinal() const override;
+    std::string str(int) const override;
 
     std::string str() const;
     std::string value() const;
 
   private:
     // datum_base required implementation.
-    virtual std::istream& read (std::istream&);
-    virtual std::ostream& write(std::ostream&) const;
+    std::istream& read (std::istream&) override;
+    std::ostream& write(std::ostream&) const override;
 
     std::string value_;
 };
diff --git a/ce_skin_name.hpp b/ce_skin_name.hpp
index 853d2c9..068c62a 100644
--- a/ce_skin_name.hpp
+++ b/ce_skin_name.hpp
@@ -60,19 +60,19 @@ class ce_skin_name
     static std::size_t ordinal(std::string const&);
 
     // mc_enum_base required implementation.
-    virtual std::vector<std::string> const& all_strings() const;
-    virtual std::size_t cardinality() const;
-    virtual void enforce_proscription();
-    virtual std::size_t ordinal() const;
-    virtual std::string str(int) const;
+    std::vector<std::string> const& all_strings() const override;
+    std::size_t cardinality() const override;
+    void enforce_proscription() override;
+    std::size_t ordinal() const override;
+    std::string str(int) const override;
 
     std::string str() const;
     std::string value() const;
 
   private:
     // datum_base required implementation.
-    virtual std::istream& read (std::istream&);
-    virtual std::ostream& write(std::ostream&) const;
+    std::istream& read (std::istream&) override;
+    std::ostream& write(std::ostream&) const override;
 
     std::string value_;
 };
diff --git a/census_document.hpp b/census_document.hpp
index 2258e48..fae41db 100644
--- a/census_document.hpp
+++ b/census_document.hpp
@@ -40,18 +40,18 @@ class CensusDocument
 
   public:
     CensusDocument();
-    virtual ~CensusDocument();
+    ~CensusDocument() override;
 
   private:
     wxDataViewCtrl& PredominantViewWindow() const;
 
     // wxDocument overrides.
-    virtual bool OnCreate(wxString const& filename, long int flags);
+    bool OnCreate(wxString const& filename, long int flags) override;
 #if !wxCHECK_VERSION(2,9,0)
     virtual bool OnNewDocument();
 #endif // !wxCHECK_VERSION(2,9,0)
-    virtual bool DoOpenDocument(wxString const& filename);
-    virtual bool DoSaveDocument(wxString const& filename);
+    bool DoOpenDocument(wxString const& filename) override;
+    bool DoSaveDocument(wxString const& filename) override;
 
     multiple_cell_document doc_;
 
diff --git a/census_view.cpp b/census_view.cpp
index f07ee11..a7741de 100644
--- a/census_view.cpp
+++ b/census_view.cpp
@@ -96,7 +96,7 @@ struct tn_range_variant_data
     {
     }
 
-    virtual bool Eq(wxVariantData& data) const
+    bool Eq(wxVariantData& data) const override
     {
         tn_range_variant_data* d = dynamic_cast<tn_range_variant_data*>(&data);
         if(!d)
@@ -104,9 +104,9 @@ struct tn_range_variant_data
         return value == d->value && min == d->min && max == d->max;
     }
 
-    virtual wxString GetType() const { return 
typeid(tn_range_variant_data).name(); }
+    wxString GetType() const override { return 
typeid(tn_range_variant_data).name(); }
 
-    virtual wxVariantData* Clone() const
+    wxVariantData* Clone() const override
     {
         return new(wx) tn_range_variant_data(value, min, max);
     }
@@ -124,13 +124,13 @@ class RangeTypeRenderer
     RangeTypeRenderer();
 
   public:
-    virtual bool HasEditorCtrl() const { return true; }
-    virtual wxWindow* CreateEditorCtrl(wxWindow* parent, wxRect labelRect, 
wxVariant const& value);
-    virtual bool GetValueFromEditorCtrl(wxWindow* editor, wxVariant& value);
-    virtual bool Render(wxRect rect, wxDC* dc, int state);
-    virtual wxSize GetSize() const;
-    virtual bool SetValue(wxVariant const& value);
-    virtual bool GetValue(wxVariant& value) const;
+    bool HasEditorCtrl() const override { return true; }
+    wxWindow* CreateEditorCtrl(wxWindow* parent, wxRect labelRect, wxVariant 
const& value) override;
+    bool GetValueFromEditorCtrl(wxWindow* editor, wxVariant& value) override;
+    bool Render(wxRect rect, wxDC* dc, int state) override;
+    wxSize GetSize() const override;
+    bool SetValue(wxVariant const& value) override;
+    bool GetValue(wxVariant& value) const override;
 
   protected:
     virtual wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data) = 0;
@@ -212,8 +212,8 @@ class IntSpinRenderer
     IntSpinRenderer() : RangeTypeRenderer() {}
 
   protected:
-    virtual wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data);
-    virtual std::string DoGetValueFromEditor(wxWindow* editor);
+    wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data) override;
+    std::string DoGetValueFromEditor(wxWindow* editor) override;
 };
 
 wxWindow* IntSpinRenderer::DoCreateEditor
@@ -250,8 +250,8 @@ class DoubleRangeRenderer
     DoubleRangeRenderer() : RangeTypeRenderer() {}
 
   protected:
-    virtual wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data);
-    virtual std::string DoGetValueFromEditor(wxWindow* editor);
+    wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data) override;
+    std::string DoGetValueFromEditor(wxWindow* editor) override;
 };
 
 wxWindow* DoubleRangeRenderer::DoCreateEditor
@@ -294,11 +294,11 @@ class DateRenderer
 {
   public:
     DateRenderer() : RangeTypeRenderer() {}
-    virtual bool Render(wxRect rect, wxDC* dc, int state);
+    bool Render(wxRect rect, wxDC* dc, int state) override;
 
   protected:
-    virtual wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data);
-    virtual std::string DoGetValueFromEditor(wxWindow* editor);
+    wxWindow* DoCreateEditor(wxWindow* parent, wxRect const& rect, 
tn_range_variant_data const& data) override;
+    std::string DoGetValueFromEditor(wxWindow* editor) override;
 };
 
 wxWindow* DateRenderer::DoCreateEditor
@@ -351,7 +351,7 @@ struct input_sequence_variant_data
     {
     }
 
-    virtual bool Eq(wxVariantData& data) const
+    bool Eq(wxVariantData& data) const override
     {
         input_sequence_variant_data* d = 
dynamic_cast<input_sequence_variant_data*>(&data);
         if(!d)
@@ -359,9 +359,9 @@ struct input_sequence_variant_data
         return value == d->value;
     }
 
-    virtual wxString GetType() const { return 
typeid(input_sequence_variant_data).name(); }
+    wxString GetType() const override { return 
typeid(input_sequence_variant_data).name(); }
 
-    virtual wxVariantData* Clone() const
+    wxVariantData* Clone() const override
     {
         return new(wx) input_sequence_variant_data(value, input, field);
     }
@@ -376,13 +376,13 @@ class DatumSequenceRenderer
 {
   public:
     DatumSequenceRenderer();
-    virtual bool HasEditorCtrl() const { return true; }
-    virtual wxWindow* CreateEditorCtrl(wxWindow* parent, wxRect labelRect, 
wxVariant const& value);
-    virtual bool GetValueFromEditorCtrl(wxWindow* editor, wxVariant& value);
-    virtual bool Render(wxRect rect, wxDC* dc, int state);
-    virtual wxSize GetSize() const;
-    virtual bool SetValue(wxVariant const& value);
-    virtual bool GetValue(wxVariant& value) const;
+    bool HasEditorCtrl() const override { return true; }
+    wxWindow* CreateEditorCtrl(wxWindow* parent, wxRect labelRect, wxVariant 
const& value) override;
+    bool GetValueFromEditorCtrl(wxWindow* editor, wxVariant& value) override;
+    bool Render(wxRect rect, wxDC* dc, int state) override;
+    wxSize GetSize() const override;
+    bool SetValue(wxVariant const& value) override;
+    bool GetValue(wxVariant& value) const override;
 
     std::string  m_value;
     Input const* m_input;
@@ -480,7 +480,7 @@ class renderer_type_converter
 
 class renderer_bool_converter : public renderer_type_converter
 {
-    virtual wxVariant to_variant(any_member<Input> const& x, Input const&, 
std::string const&) const
+    wxVariant to_variant(any_member<Input> const& x, Input const&, std::string 
const&) const override
     {
         std::string const s(x.str());
         return
@@ -490,17 +490,17 @@ class renderer_bool_converter : public 
renderer_type_converter
             ;
     }
 
-    virtual std::string from_variant(wxVariant const& x) const
+    std::string from_variant(wxVariant const& x) const override
     {
         return x.GetBool() ? "Yes" : "No";
     }
 
-    virtual char const* variant_type() const
+    char const* variant_type() const override
     {
         return "bool";
     }
 
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const&) const 
override
     {
         return new(wx) wxDataViewToggleRenderer("bool", 
wxDATAVIEW_CELL_ACTIVATABLE, wxALIGN_CENTER);
     }
@@ -510,22 +510,22 @@ class renderer_bool_converter : public 
renderer_type_converter
 
 class renderer_enum_converter : public renderer_type_converter
 {
-    virtual wxVariant to_variant(any_member<Input> const& x, Input const&, 
std::string const&) const
+    wxVariant to_variant(any_member<Input> const& x, Input const&, std::string 
const&) const override
     {
         return wxString(x.str());
     }
 
-    virtual std::string from_variant(wxVariant const& x) const
+    std::string from_variant(wxVariant const& x) const override
     {
         return x.GetString().ToStdString();
     }
 
-    virtual char const* variant_type() const
+    char const* variant_type() const override
     {
         return "string";
     }
 
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const& 
representative_value) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const& 
representative_value) const override
     {
         mc_enum_base const* as_enum = 
member_cast<mc_enum_base>(representative_value);
 
@@ -541,24 +541,24 @@ class renderer_enum_converter : public 
renderer_type_converter
 class renderer_sequence_converter : public renderer_type_converter
 {
   public:
-    virtual wxVariant to_variant(any_member<Input> const& x, Input const& row, 
std::string const& col) const
+    wxVariant to_variant(any_member<Input> const& x, Input const& row, 
std::string const& col) const override
     {
         return new(wx) input_sequence_variant_data(x.str(), &row, col);
     }
 
-    virtual std::string from_variant(wxVariant const& x) const
+    std::string from_variant(wxVariant const& x) const override
     {
         input_sequence_variant_data const* data = 
dynamic_cast<input_sequence_variant_data*>(x.GetData());
         LMI_ASSERT(data);
         return data->value;
     }
 
-    virtual char const* variant_type() const
+    char const* variant_type() const override
     {
         return typeid(input_sequence_variant_data).name();
     }
 
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const&) const 
override
     {
         return new(wx) DatumSequenceRenderer();
     }
@@ -569,21 +569,21 @@ class renderer_sequence_converter : public 
renderer_type_converter
 class renderer_range_converter : public renderer_type_converter
 {
   public:
-    virtual wxVariant to_variant(any_member<Input> const& x, Input const&, 
std::string const&) const
+    wxVariant to_variant(any_member<Input> const& x, Input const&, std::string 
const&) const override
     {
         tn_range_base const* as_range = member_cast<tn_range_base>(x);
         LMI_ASSERT(as_range);
         return new(wx) tn_range_variant_data(*as_range);
     }
 
-    virtual std::string from_variant(wxVariant const& x) const
+    std::string from_variant(wxVariant const& x) const override
     {
         tn_range_variant_data const* data = 
dynamic_cast<tn_range_variant_data*>(x.GetData());
         LMI_ASSERT(data);
         return data->value;
     }
 
-    virtual char const* variant_type() const
+    char const* variant_type() const override
     {
         return typeid(tn_range_variant_data).name();
     }
@@ -592,7 +592,7 @@ class renderer_range_converter : public 
renderer_type_converter
 class renderer_int_range_converter : public renderer_range_converter
 {
   public:
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const&) const 
override
     {
         return new(wx) IntSpinRenderer();
     }
@@ -601,7 +601,7 @@ class renderer_int_range_converter : public 
renderer_range_converter
 class renderer_double_range_converter : public renderer_range_converter
 {
   public:
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const&) const 
override
     {
         return new(wx) DoubleRangeRenderer();
     }
@@ -610,7 +610,7 @@ class renderer_double_range_converter : public 
renderer_range_converter
 class renderer_date_converter : public renderer_range_converter
 {
   public:
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const&) const 
override
     {
         return new(wx) DateRenderer();
     }
@@ -621,7 +621,7 @@ class renderer_date_converter : public 
renderer_range_converter
 class renderer_fallback_converter : public renderer_type_converter
 {
   public:
-    virtual wxVariant to_variant(any_member<Input> const& x, Input const&, 
std::string const&) const
+    wxVariant to_variant(any_member<Input> const& x, Input const&, std::string 
const&) const override
     {
         // Strings containing new line characters are currently not displayed
         // correctly by wxDataViewCtrl, so display the value on a single line
@@ -632,7 +632,7 @@ class renderer_fallback_converter : public 
renderer_type_converter
         return s;
     }
 
-    virtual std::string from_variant(wxVariant const& x) const
+    std::string from_variant(wxVariant const& x) const override
     {
         // Undo the replacement done above. Notice that this will (wrongly)
         // translate any RETURN_SYMBOL characters entered by the user into the
@@ -643,12 +643,12 @@ class renderer_fallback_converter : public 
renderer_type_converter
         return s.ToStdString();
     }
 
-    virtual char const* variant_type() const
+    char const* variant_type() const override
     {
         return "string";
     }
 
-    virtual wxDataViewRenderer* create_renderer(any_member<Input> const&) const
+    wxDataViewRenderer* create_renderer(any_member<Input> const&) const 
override
     {
         return new(wx) wxDataViewTextRenderer("string", 
wxDATAVIEW_CELL_EDITABLE);
     }
@@ -730,12 +730,12 @@ class CensusViewDataViewModel : public 
wxDataViewIndexListModel
     {
     }
 
-    virtual void GetValueByRow(wxVariant& variant, unsigned int row, unsigned 
int col) const;
-    virtual bool SetValueByRow(wxVariant const&, unsigned int, unsigned int);
+    void GetValueByRow(wxVariant& variant, unsigned int row, unsigned int col) 
const override;
+    bool SetValueByRow(wxVariant const&, unsigned int, unsigned int) override;
 
-    virtual unsigned int GetColumnCount() const;
+    unsigned int GetColumnCount() const override;
 
-    virtual wxString GetColumnType(unsigned int col) const;
+    wxString GetColumnType(unsigned int col) const override;
 
     std::string const& col_name(unsigned col) const;
     any_member<Input>& cell_at(unsigned row, unsigned col);
diff --git a/census_view.hpp b/census_view.hpp
index 6ba9598..a8c0295 100644
--- a/census_view.hpp
+++ b/census_view.hpp
@@ -63,9 +63,9 @@ class CensusView
     CensusDocument& document() const;
 
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     void UponAddCell                (wxCommandEvent&);
     void UponDeleteCells            (wxCommandEvent&);
diff --git a/comma_punct.hpp b/comma_punct.hpp
index 7b87cff..14ba9a8 100644
--- a/comma_punct.hpp
+++ b/comma_punct.hpp
@@ -45,8 +45,8 @@ class comma_punct
         {}
 
   protected:
-    char do_thousands_sep()   const {return ',';}
-    std::string do_grouping() const {return "\003";}
+    char do_thousands_sep()   const override {return ',';}
+    std::string do_grouping() const override {return "\003";}
 };
 
 #endif // comma_punct_hpp
diff --git a/configurable_settings.hpp b/configurable_settings.hpp
index 797cb0a..3ab93da 100644
--- a/configurable_settings.hpp
+++ b/configurable_settings.hpp
@@ -72,28 +72,28 @@ class LMI_SO configurable_settings
 
   private:
     configurable_settings();
-    ~configurable_settings();
+    ~configurable_settings() override;
 
     void ascribe_members();
     void load();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual void handle_missing_version_attribute() const;
-    virtual bool is_detritus(std::string const&) const;
-    virtual void redintegrate_ex_ante
+    void handle_missing_version_attribute() const override;
+    bool is_detritus(std::string const&) const override;
+    void redintegrate_ex_ante
         (int                file_version
         ,std::string const& name
         ,std::string      & value
-        ) const;
-    virtual void redintegrate_ex_post
+        ) const override;
+    void redintegrate_ex_post
         (int                                       file_version
         ,std::map<std::string, std::string> const& detritus_map
         ,std::list<std::string>             const& residuary_names
-        );
+        ) override;
 
     std::string calculation_summary_columns_;
     std::string cgi_bin_log_filename_;
diff --git a/configure.ac b/configure.ac
index 85774de..e788a25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -556,7 +556,6 @@ fi
 if test "x$GXX" == "xyes"; then
     if test "$CLANG" = "yes"; then
         cxx_warnings_flags="$cxx_warnings_flags \
-            -Wno-inconsistent-missing-override \
             -Wno-mismatched-tags"
     else
         cxx_warnings_flags="$cxx_warnings_flags \
diff --git a/database_document.hpp b/database_document.hpp
index 50322f0..e480407 100644
--- a/database_document.hpp
+++ b/database_document.hpp
@@ -34,14 +34,14 @@ class DatabaseDocument
 {
   public:
     DatabaseDocument();
-    virtual ~DatabaseDocument();
+    ~DatabaseDocument() override;
 
     database_entity& GetTDBValue(e_database_key index);
 
   private:
     // ProductEditorDocument overrides.
-    virtual void ReadDocument (std::string const& filename);
-    virtual void WriteDocument(std::string const& filename);
+    void ReadDocument (std::string const& filename) override;
+    void WriteDocument(std::string const& filename) override;
 
     DBDictionary db_;
 
diff --git a/database_view.cpp b/database_view.cpp
index 694b63c..41470c8 100644
--- a/database_view.cpp
+++ b/database_view.cpp
@@ -107,7 +107,7 @@ class database_tree_item_data
 {
   public:
     database_tree_item_data(db_names const&);
-    virtual ~database_tree_item_data() {}
+    ~database_tree_item_data() override {}
 
     db_names const& db_name() const {return db_names_;}
 
diff --git a/database_view.hpp b/database_view.hpp
index 4883d9b..0de0c6c 100644
--- a/database_view.hpp
+++ b/database_view.hpp
@@ -42,21 +42,21 @@ class DatabaseView
 {
   public:
     DatabaseView();
-    virtual ~DatabaseView();
+    ~DatabaseView() override;
 
   private:
     // ViewEx required implementation.
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ProductEditorView required implementation.
-    virtual bool IsModified() const;
-    virtual void DiscardEdits();
+    bool IsModified() const override;
+    void DiscardEdits() override;
 
     // TreeGridViewBase required implementation.
-    virtual wxTreeCtrl*   CreateTreeCtrl(wxWindow* parent);
-    virtual MultiDimGrid* CreateGridCtrl(wxWindow* parent);
-    virtual void          SetupControls();
+    wxTreeCtrl*   CreateTreeCtrl(wxWindow* parent) override;
+    MultiDimGrid* CreateGridCtrl(wxWindow* parent) override;
+    void          SetupControls() override;
 
     DatabaseDocument&           document() const;
     DatabaseTableAdapter      & table_adapter()      ;
diff --git a/database_view_editor.hpp b/database_view_editor.hpp
index fd5e189..3043968 100644
--- a/database_view_editor.hpp
+++ b/database_view_editor.hpp
@@ -72,7 +72,7 @@ class DatabaseTableAdapter
   public:
     DatabaseTableAdapter(database_entity* db_value = nullptr);
 
-    virtual ~DatabaseTableAdapter();
+    ~DatabaseTableAdapter() override;
 
     /// Decorated object accessors
     void SetTDBValue(database_entity* db_value);
@@ -90,15 +90,15 @@ class DatabaseTableAdapter
 
   private:
     /// MultiDimTableAny required implementation.
-    virtual bool VariesByDimension(unsigned int) const;
-    virtual void MakeVaryByDimension(unsigned int, bool);
-    virtual bool CanChangeVariationWith(unsigned int) const;
-    AxesAny DoGetAxesAny();
-    virtual unsigned int DoGetDimension() const;
+    bool VariesByDimension(unsigned int) const override;
+    void MakeVaryByDimension(unsigned int, bool) override;
+    bool CanChangeVariationWith(unsigned int) const override;
+    AxesAny DoGetAxesAny() override;
+    unsigned int DoGetDimension() const override;
 
     /// MultiDimTableAny overrides.
-    virtual bool DoApplyAxisAdjustment(MultiDimAxisAny&, unsigned int);
-    virtual bool DoRefreshAxisAdjustment(MultiDimAxisAny&, unsigned int);
+    bool DoApplyAxisAdjustment(MultiDimAxisAny&, unsigned int) override;
+    bool DoRefreshAxisAdjustment(MultiDimAxisAny&, unsigned int) override;
 
     /// Helper, converts array of boost::any into array of ints
     static void ConvertValue(Coords const&, std::vector<int>&);
diff --git a/datum_boolean.hpp b/datum_boolean.hpp
index e3dd06b..e8dfaea 100644
--- a/datum_boolean.hpp
+++ b/datum_boolean.hpp
@@ -36,15 +36,15 @@ class datum_boolean
 {
   public:
     explicit datum_boolean(bool = true);
-    virtual ~datum_boolean();
+    ~datum_boolean() override;
 
     datum_boolean& operator=(bool);
 
     bool value() const;
 
     // datum_base required implementation.
-    virtual std::istream& read (std::istream&);
-    virtual std::ostream& write(std::ostream&) const;
+    std::istream& read (std::istream&) override;
+    std::ostream& write(std::ostream&) const override;
 
   private:
     bool value_;
diff --git a/datum_sequence.hpp b/datum_sequence.hpp
index 2bdf5a5..e6336a6 100644
--- a/datum_sequence.hpp
+++ b/datum_sequence.hpp
@@ -72,7 +72,7 @@ class datum_sequence
   public:
     datum_sequence();
     explicit datum_sequence(std::string const&);
-    virtual ~datum_sequence() = 0;
+    ~datum_sequence() override = 0;
 
     datum_sequence& operator=(std::string const&);
 
@@ -122,9 +122,9 @@ class numeric_sequence
 
     numeric_sequence& operator=(std::string const&);
 
-    virtual bool numeric_values_are_allowable() const {return true;}
-    virtual bool keyword_values_are_allowable() const {return false;}
-    virtual std::map<std::string,std::string> const allowed_keywords() const;
+    bool numeric_values_are_allowable() const override {return true;}
+    bool keyword_values_are_allowable() const override {return false;}
+    std::map<std::string,std::string> const allowed_keywords() const override;
 };
 
 bool operator==(numeric_sequence const&, numeric_sequence const&);
@@ -153,9 +153,9 @@ class payment_sequence
 
     payment_sequence& operator=(std::string const&);
 
-    virtual bool numeric_values_are_allowable() const {return true;}
-    virtual bool keyword_values_are_allowable() const {return true;}
-    virtual std::map<std::string,std::string> const allowed_keywords() const;
+    bool numeric_values_are_allowable() const override {return true;}
+    bool keyword_values_are_allowable() const override {return true;}
+    std::map<std::string,std::string> const allowed_keywords() const override;
 };
 
 bool operator==(payment_sequence const&, payment_sequence const&);
@@ -184,10 +184,10 @@ class mode_sequence
 
     mode_sequence& operator=(std::string const&);
 
-    virtual bool numeric_values_are_allowable() const {return false;}
-    virtual bool keyword_values_are_allowable() const {return true;}
-    virtual std::string const default_keyword() const;
-    virtual std::map<std::string,std::string> const allowed_keywords() const;
+    bool numeric_values_are_allowable() const override {return false;}
+    bool keyword_values_are_allowable() const override {return true;}
+    std::string const default_keyword() const override;
+    std::map<std::string,std::string> const allowed_keywords() const override;
 };
 
 bool operator==(mode_sequence const&, mode_sequence const&);
@@ -216,9 +216,9 @@ class specamt_sequence
 
     specamt_sequence& operator=(std::string const&);
 
-    virtual bool numeric_values_are_allowable() const {return true;}
-    virtual bool keyword_values_are_allowable() const {return true;}
-    virtual std::map<std::string,std::string> const allowed_keywords() const;
+    bool numeric_values_are_allowable() const override {return true;}
+    bool keyword_values_are_allowable() const override {return true;}
+    std::map<std::string,std::string> const allowed_keywords() const override;
 };
 
 bool operator==(specamt_sequence const&, specamt_sequence const&);
@@ -247,10 +247,10 @@ class dbo_sequence
 
     dbo_sequence& operator=(std::string const&);
 
-    virtual bool numeric_values_are_allowable() const {return false;}
-    virtual bool keyword_values_are_allowable() const {return true;}
-    virtual std::string const default_keyword() const;
-    virtual std::map<std::string,std::string> const allowed_keywords() const;
+    bool numeric_values_are_allowable() const override {return false;}
+    bool keyword_values_are_allowable() const override {return true;}
+    std::string const default_keyword() const override;
+    std::map<std::string,std::string> const allowed_keywords() const override;
 };
 
 bool operator==(dbo_sequence const&, dbo_sequence const&);
diff --git a/datum_string.hpp b/datum_string.hpp
index ccc1f82..47b7eb3 100644
--- a/datum_string.hpp
+++ b/datum_string.hpp
@@ -41,15 +41,15 @@ class datum_string
   public:
     datum_string();
     explicit datum_string(std::string const&);
-    virtual ~datum_string();
+    ~datum_string() override;
 
     datum_string& operator=(std::string const&);
 
     std::string const& value() const;
 
     // datum_base required implementation.
-    virtual std::istream& read (std::istream&);
-    virtual std::ostream& write(std::ostream&) const;
+    std::istream& read (std::istream&) override;
+    std::ostream& write(std::ostream&) const override;
 
   private:
     std::string value_;
diff --git a/dbdict.hpp b/dbdict.hpp
index 353b2d3..802bed7 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -52,7 +52,7 @@ class LMI_SO DBDictionary
     DBDictionary();
     DBDictionary(std::string const& filename);
 
-    ~DBDictionary();
+    ~DBDictionary() override;
 
     database_entity const& datum(std::string const&) const;
 
@@ -76,23 +76,23 @@ class LMI_SO DBDictionary
     void Nyarlathotep();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual void read_element
+    void read_element
         (xml::element const& e
         ,std::string const&  name
         ,int                 file_version
-        );
-    virtual void write_element
+        ) override;
+    void write_element
         (xml::element&       parent
         ,std::string const&  name
-        ) const;
-    virtual void write_proem
+        ) const override;
+    void write_proem
         (xml_lmi::xml_document& document
         ,std::string const&     file_leaf_name
-        ) const;
+        ) const override;
 
     database_entity MinIssAge           ;
     database_entity MaxIssAge           ;
diff --git a/default_view.hpp b/default_view.hpp
index cdb2acc..3f434b8 100644
--- a/default_view.hpp
+++ b/default_view.hpp
@@ -38,13 +38,13 @@ class DefaultView
 {
   public:
     DefaultView();
-    virtual ~DefaultView();
+    ~DefaultView() override;
 
   private:
     // MvcView required implementation.
-    virtual char const* DoBookControlName () const;
-    virtual char const* DoMainDialogName  () const;
-    virtual char const* DoResourceFileName() const;
+    char const* DoBookControlName () const override;
+    char const* DoMainDialogName  () const override;
+    char const* DoResourceFileName() const override;
 };
 
 #endif // default_view_hpp
diff --git a/docmanager_ex.hpp b/docmanager_ex.hpp
index a98425f..ce4bf45 100644
--- a/docmanager_ex.hpp
+++ b/docmanager_ex.hpp
@@ -47,7 +47,7 @@ class DocManagerEx
     // explicitly marked that way--though it seems that it should be,
     // for consistency with the style of the rest of the library.
     //
-    virtual ~DocManagerEx();
+    ~DocManagerEx() override;
 
     void AssociateFileHistoryWithFileMenu(wxMenuBar*);
     void DissociateFileHistoryFromFileMenu(wxMenuBar*);
@@ -64,11 +64,11 @@ class DocManagerEx
     // deprecated unless it's wanted on other platforms?
 
     // wxDocManager overrides.
-    virtual wxDocTemplate* SelectDocumentType
+    wxDocTemplate* SelectDocumentType
         (wxDocTemplate** templates
         ,int             noTemplates
         ,bool            sort
-        );
+        ) override;
 
     boost::scoped_ptr<wxPrintData> print_data_;
     boost::scoped_ptr<wxPageSetupDialogData> page_setup_data_;
diff --git a/gpt_document.hpp b/gpt_document.hpp
index ab689d1..39fa0d4 100644
--- a/gpt_document.hpp
+++ b/gpt_document.hpp
@@ -41,7 +41,7 @@ class gpt_document
 
   public:
     gpt_document();
-    virtual ~gpt_document();
+    ~gpt_document() override;
 
     gpt_view& PredominantView() const;
 
@@ -49,12 +49,12 @@ class gpt_document
     wxHtmlWindow& PredominantViewWindow() const;
 
     // wxDocument overrides.
-    virtual bool OnCreate(wxString const& filename, long int flags);
+    bool OnCreate(wxString const& filename, long int flags) override;
 #if !wxCHECK_VERSION(2,9,0)
     virtual bool OnNewDocument();
 #endif // !wxCHECK_VERSION(2,9,0)
-    virtual bool DoOpenDocument(wxString const& filename);
-    virtual bool DoSaveDocument(wxString const& filename);
+    bool DoOpenDocument(wxString const& filename) override;
+    bool DoSaveDocument(wxString const& filename) override;
 
     gpt_xml_document doc_;
 
diff --git a/gpt_input.hpp b/gpt_input.hpp
index 0979782..8a84c1c 100644
--- a/gpt_input.hpp
+++ b/gpt_input.hpp
@@ -82,7 +82,7 @@ class LMI_SO gpt_input
   public:
     gpt_input();
     gpt_input(gpt_input const&);
-    virtual ~gpt_input();
+    ~gpt_input() override;
 
     gpt_input& operator=(gpt_input const&);
     bool operator==(gpt_input const&) const;
@@ -105,35 +105,35 @@ class LMI_SO gpt_input
     void AscribeMembers();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual bool is_detritus(std::string const&) const;
-    virtual void redintegrate_ex_ante
+    bool is_detritus(std::string const&) const override;
+    void redintegrate_ex_ante
         (int                file_version
         ,std::string const& name
         ,std::string      & value
-        ) const;
-    virtual void redintegrate_ex_post
+        ) const override;
+    void redintegrate_ex_post
         (int                                       file_version
         ,std::map<std::string, std::string> const& detritus_map
         ,std::list<std::string>             const& residuary_names
-        );
-    virtual void redintegrate_ad_terminum();
+        ) override;
+    void redintegrate_ad_terminum() override;
 
     // MvcModel required implementation.
-    virtual void DoAdaptExternalities();
-    virtual datum_base const* DoBaseDatumPointer(std::string const&) const;
-    virtual any_entity      & DoEntity(std::string const&)      ;
-    virtual any_entity const& DoEntity(std::string const&) const;
-    virtual NamesType const& DoNames() const;
-    virtual StateType        DoState() const;
-    virtual void DoCustomizeInitialValues();
-    virtual void DoEnforceCircumscription(std::string const&);
-    virtual void DoEnforceProscription   (std::string const&);
-    virtual void DoHarmonize();
-    virtual void DoTransmogrify();
+    void DoAdaptExternalities() override;
+    datum_base const* DoBaseDatumPointer(std::string const&) const override;
+    any_entity      & DoEntity(std::string const&) override      ;
+    any_entity const& DoEntity(std::string const&) const override;
+    NamesType const& DoNames() const override;
+    StateType        DoState() const override;
+    void DoCustomizeInitialValues() override;
+    void DoEnforceCircumscription(std::string const&) override;
+    void DoEnforceProscription   (std::string const&) override;
+    void DoHarmonize() override;
+    void DoTransmogrify() override;
 
     std::string RealizeOldFlatExtra  ();
     std::string RealizeNewFlatExtra  ();
diff --git a/gpt_state.hpp b/gpt_state.hpp
index aa22f67..529df76 100644
--- a/gpt_state.hpp
+++ b/gpt_state.hpp
@@ -58,7 +58,7 @@ class LMI_SO gpt_state
   public:
     gpt_state();
     gpt_state(gpt_state const&);
-    virtual ~gpt_state();
+    ~gpt_state() override;
 
     gpt_state& operator=(gpt_state const&);
     bool operator==(gpt_state const&) const;
@@ -69,11 +69,11 @@ class LMI_SO gpt_state
     void AscribeMembers();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual bool is_detritus(std::string const&) const;
+    bool is_detritus(std::string const&) const override;
 
     int    B0_deduced_policy_year;
     int    B1_deduced_contract_year;
diff --git a/gpt_view.hpp b/gpt_view.hpp
index 93b46d5..9848e6a 100644
--- a/gpt_view.hpp
+++ b/gpt_view.hpp
@@ -51,13 +51,13 @@ class gpt_mvc_view
 {
   public:
     gpt_mvc_view();
-    virtual ~gpt_mvc_view();
+    ~gpt_mvc_view() override;
 
   private:
     // MvcView required implementation.
-    virtual char const* DoBookControlName () const;
-    virtual char const* DoMainDialogName  () const;
-    virtual char const* DoResourceFileName() const;
+    char const* DoBookControlName () const override;
+    char const* DoMainDialogName  () const override;
+    char const* DoResourceFileName() const override;
 };
 
 class gpt_view
@@ -69,7 +69,7 @@ class gpt_view
 
   public:
     gpt_view();
-    virtual ~gpt_view();
+    ~gpt_view() override;
 
   private:
     gpt_document& document() const;
@@ -78,15 +78,15 @@ class gpt_view
     void Run();
 
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ViewEx overrides.
-    virtual bool OnCreate(wxDocument*, long int);
+    bool OnCreate(wxDocument*, long int) override;
 
     // wxView overrides.
-    virtual wxPrintout* OnCreatePrintout();
+    wxPrintout* OnCreatePrintout() override;
 
     void UponProperties        (wxCommandEvent&);
     void UponUpdateFileSave    (wxUpdateUIEvent&);
diff --git a/group_quote_pdf_gen_wx.cpp b/group_quote_pdf_gen_wx.cpp
index 1f1058f..649c3b5 100644
--- a/group_quote_pdf_gen_wx.cpp
+++ b/group_quote_pdf_gen_wx.cpp
@@ -479,8 +479,8 @@ class group_quote_pdf_generator_wx
                 );
         }
 
-    virtual void add_ledger(Ledger const& ledger);
-    virtual void save(std::string const& output_filename);
+    void add_ledger(Ledger const& ledger) override;
+    void save(std::string const& output_filename) override;
 
   private:
     // These margins are arbitrary and can be changed to conform to subjective
diff --git a/icon_monger.hpp b/icon_monger.hpp
index 44f6819..8ff2afd 100644
--- a/icon_monger.hpp
+++ b/icon_monger.hpp
@@ -40,15 +40,15 @@ class icon_monger
 {
   public:
     icon_monger();
-    virtual ~icon_monger();
+    ~icon_monger() override;
 
   private:
     // wxArtProvider required implementation.
-    virtual wxBitmap CreateBitmap
+    wxBitmap CreateBitmap
         (wxArtID const&
         ,wxArtClient const&
         ,wxSize const&
-        );
+        ) override;
 
     std::map<wxArtID,std::string> icon_names_by_wx_id_;
     std::set<std::string>         lmi_specific_icon_names_;
diff --git a/illustration_document.hpp b/illustration_document.hpp
index 898ec94..e491dfd 100644
--- a/illustration_document.hpp
+++ b/illustration_document.hpp
@@ -54,7 +54,7 @@ class IllustrationDocument
 
   public:
     IllustrationDocument();
-    virtual ~IllustrationDocument();
+    ~IllustrationDocument() override;
 
     IllustrationView& PredominantView() const;
 
@@ -62,12 +62,12 @@ class IllustrationDocument
     wxHtmlWindow& PredominantViewWindow() const;
 
     // wxDocument overrides.
-    virtual bool OnCreate(wxString const& filename, long int flags);
+    bool OnCreate(wxString const& filename, long int flags) override;
 #if !wxCHECK_VERSION(2,9,0)
     virtual bool OnNewDocument();
 #endif // !wxCHECK_VERSION(2,9,0)
-    virtual bool DoOpenDocument(wxString const& filename);
-    virtual bool DoSaveDocument(wxString const& filename);
+    bool DoOpenDocument(wxString const& filename) override;
+    bool DoSaveDocument(wxString const& filename) override;
 
     single_cell_document doc_;
 
diff --git a/illustration_view.hpp b/illustration_view.hpp
index 36cafaa..566fcc8 100644
--- a/illustration_view.hpp
+++ b/illustration_view.hpp
@@ -60,7 +60,7 @@ class IllustrationView
 
   public:
     IllustrationView();
-    virtual ~IllustrationView();
+    ~IllustrationView() override;
 
     // Making these functions public so that they can be invoked by
     // class CensusView is arguably less bad than making that class a
@@ -78,12 +78,12 @@ class IllustrationView
     void emit_pdf(mcenum_emission);
 
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ViewEx overrides.
-    virtual bool OnCreate(wxDocument*, long int);
+    bool OnCreate(wxDocument*, long int) override;
 
     void UponCopyFull           (wxCommandEvent&);
     void UponCopySummary        (wxCommandEvent&);
diff --git a/input.hpp b/input.hpp
index c9185bb..a7e8e09 100644
--- a/input.hpp
+++ b/input.hpp
@@ -129,7 +129,7 @@ class LMI_SO Input
   public:
     Input();
     Input(Input const&);
-    virtual ~Input();
+    ~Input() override;
 
     Input& operator=(Input const&);
     bool operator==(Input const&) const;
@@ -152,35 +152,35 @@ class LMI_SO Input
     void AscribeMembers();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual bool is_detritus(std::string const&) const;
-    virtual void redintegrate_ex_ante
+    bool is_detritus(std::string const&) const override;
+    void redintegrate_ex_ante
         (int                file_version
         ,std::string const& name
         ,std::string      & value
-        ) const;
-    virtual void redintegrate_ex_post
+        ) const override;
+    void redintegrate_ex_post
         (int                                       file_version
         ,std::map<std::string, std::string> const& detritus_map
         ,std::list<std::string>             const& residuary_names
-        );
-    virtual void redintegrate_ad_terminum();
+        ) override;
+    void redintegrate_ad_terminum() override;
 
     // MvcModel required implementation.
-    virtual void DoAdaptExternalities();
-    virtual datum_base const* DoBaseDatumPointer(std::string const&) const;
-    virtual any_entity      & DoEntity(std::string const&)      ;
-    virtual any_entity const& DoEntity(std::string const&) const;
-    virtual NamesType const& DoNames() const;
-    virtual StateType        DoState() const;
-    virtual void DoCustomizeInitialValues();
-    virtual void DoEnforceCircumscription(std::string const&);
-    virtual void DoEnforceProscription   (std::string const&);
-    virtual void DoHarmonize();
-    virtual void DoTransmogrify();
+    void DoAdaptExternalities() override;
+    datum_base const* DoBaseDatumPointer(std::string const&) const override;
+    any_entity      & DoEntity(std::string const&) override      ;
+    any_entity const& DoEntity(std::string const&) const override;
+    NamesType const& DoNames() const override;
+    StateType        DoState() const override;
+    void DoCustomizeInitialValues() override;
+    void DoEnforceCircumscription(std::string const&) override;
+    void DoEnforceProscription   (std::string const&) override;
+    void DoHarmonize() override;
+    void DoTransmogrify() override;
 
     void set_solve_durations();
     void set_inforce_durations_from_dates();
diff --git a/input_sequence_entry.cpp b/input_sequence_entry.cpp
index cf838a4..bd0e784 100644
--- a/input_sequence_entry.cpp
+++ b/input_sequence_entry.cpp
@@ -203,7 +203,7 @@ class InputSequenceEditor
     void sequence(InputSequence const& s);
     std::string sequence_string();
 
-    virtual bool TransferDataFromWindow();
+    bool TransferDataFromWindow() override;
 
   private:
     // Helper class ensuring that only one relayout is really done during its
diff --git a/input_sequence_entry.hpp b/input_sequence_entry.hpp
index 333bf17..3ae9113 100644
--- a/input_sequence_entry.hpp
+++ b/input_sequence_entry.hpp
@@ -75,8 +75,8 @@ class InputSequenceEntryXmlHandler
     InputSequenceEntryXmlHandler();
 
   private:
-    virtual wxObject* DoCreateResource();
-    virtual bool CanHandle(wxXmlNode* node);
+    wxObject* DoCreateResource() override;
+    bool CanHandle(wxXmlNode* node) override;
 
     DECLARE_DYNAMIC_CLASS(InputSequenceEntryXmlHandler)
 };
diff --git a/ledger_invariant.hpp b/ledger_invariant.hpp
index d8c5354..abfc5f2 100644
--- a/ledger_invariant.hpp
+++ b/ledger_invariant.hpp
@@ -47,14 +47,14 @@ class LMI_SO LedgerInvariant
     explicit LedgerInvariant(int len);
     LedgerInvariant(LedgerInvariant const&);
     LedgerInvariant& operator=(LedgerInvariant const&);
-    virtual ~LedgerInvariant();
+    ~LedgerInvariant() override;
 
     void Init(BasicValues const*);
 
     LedgerInvariant& PlusEq(LedgerInvariant const& a_Addend);
 
     bool                         IsFullyInitialized()    const;
-    virtual int                  GetLength()             const;
+    int                  GetLength()             const override;
     std::vector<double> const&   GetInforceLives()       const;
     double                       GetInitAnnLoanDueRate() const;
     std::string const&           GetStatePostalAbbrev()  const;
@@ -67,8 +67,8 @@ class LMI_SO LedgerInvariant
     int irr_precision;
     void CalculateIrrs(Ledger const&);
 
-    void UpdateCRC(CRC& a_crc) const;
-    void Spew(std::ostream& os) const;
+    void UpdateCRC(CRC& a_crc) const override;
+    void Spew(std::ostream& os) const override;
 
 // TODO ?? Make data private. Provide const accessors. Some values
 // (e.g., outlay) could be calculated dynamically instead of stored.
diff --git a/ledger_variant.hpp b/ledger_variant.hpp
index d3944ff..24f3091 100644
--- a/ledger_variant.hpp
+++ b/ledger_variant.hpp
@@ -50,7 +50,7 @@ class LMI_SO LedgerVariant
     LedgerVariant(int len = 0);
     LedgerVariant(LedgerVariant const&);
     LedgerVariant& operator=(LedgerVariant const&);
-    virtual ~LedgerVariant();
+    ~LedgerVariant() override;
 
     LedgerVariant& PlusEq
         (LedgerVariant const&  a_Addend
@@ -61,7 +61,7 @@ class LMI_SO LedgerVariant
 
     bool IsFullyInitialized() const {return FullyInitialized;}
 
-    virtual int GetLength() const {return Length;}
+    int GetLength() const override {return Length;}
 
     void set_run_basis(mcenum_run_basis);
 
@@ -80,8 +80,8 @@ class LMI_SO LedgerVariant
     inline double InitAnnSepAcctNetRate() const
         {return InitAnnSepAcctNetInt;}
 
-    void UpdateCRC(CRC& a_crc) const;
-    void Spew(std::ostream& os) const;
+    void UpdateCRC(CRC& a_crc) const override;
+    void Spew(std::ostream& os) const override;
 
 // TODO ?? Make data private. Provide const accessors. Some of these
 // values could be calculated dynamically instead of stored.
diff --git a/main_wx_test.cpp b/main_wx_test.cpp
index 0b0522a..f3d55b6 100644
--- a/main_wx_test.cpp
+++ b/main_wx_test.cpp
@@ -638,20 +638,20 @@ class SkeletonTest : public Skeleton
 
   protected:
     // Override base class virtual method.
-    virtual DocManagerEx* CreateDocManager();
+    DocManagerEx* CreateDocManager() override;
 
     // wxApp overrides.
-    virtual bool OnInit                 ();
-    virtual bool OnExceptionInMainLoop  ();
-    virtual bool StoreCurrentException  ();
-    virtual void RethrowStoredException ();
-    virtual void OnAssertFailure
+    bool OnInit                 () override;
+    bool OnExceptionInMainLoop  () override;
+    bool StoreCurrentException  () override;
+    void RethrowStoredException () override;
+    void OnAssertFailure
         (wxChar const* file
         ,int line
         ,wxChar const* func
         ,wxChar const* cond
         ,wxChar const* msg
-        );
+        ) override;
 
   private:
     void RunTheTests();
@@ -674,14 +674,14 @@ DocManagerEx* SkeletonTest::CreateDocManager()
     class DocManagerTest : public DocManagerEx
     {
       public:
-        virtual void FileHistoryLoad(wxConfigBase const&)
+        void FileHistoryLoad(wxConfigBase const&) override
             {
             // We could call the base class method here, but it doesn't seem
             // useful to do it and doing nothing here makes it more symmetric
             // with FileHistorySave().
             }
 
-        virtual void FileHistorySave(wxConfigBase&)
+        void FileHistorySave(wxConfigBase&) override
             {
             // Do not save the history to persistent storage: we don't want the
             // files opened during testing replace the files actually opened by
diff --git a/mc_enum.hpp b/mc_enum.hpp
index 517215a..a916f50 100644
--- a/mc_enum.hpp
+++ b/mc_enum.hpp
@@ -121,11 +121,11 @@ class mc_enum
     static std::size_t ordinal(std::string const&);
 
     // mc_enum_base required implementation.
-    virtual std::vector<std::string> const& all_strings() const;
-    virtual std::size_t cardinality() const;
-    virtual void enforce_proscription();
-    virtual std::size_t ordinal() const;
-    virtual std::string str(int) const;
+    std::vector<std::string> const& all_strings() const override;
+    std::size_t cardinality() const override;
+    void enforce_proscription() override;
+    std::size_t ordinal() const override;
+    std::string str(int) const override;
 
     std::string str() const;
     T value() const;
@@ -137,8 +137,8 @@ class mc_enum
     static std::vector<std::string> const& s();
 
     // datum_base required implementation.
-    virtual std::istream& read (std::istream&);
-    virtual std::ostream& write(std::ostream&) const;
+    std::istream& read (std::istream&) override;
+    std::ostream& write(std::ostream&) const override;
 
     T value_;
 };
diff --git a/mec_document.hpp b/mec_document.hpp
index 8e37f8f..cda9524 100644
--- a/mec_document.hpp
+++ b/mec_document.hpp
@@ -41,7 +41,7 @@ class mec_document
 
   public:
     mec_document();
-    virtual ~mec_document();
+    ~mec_document() override;
 
     mec_view& PredominantView() const;
 
@@ -49,12 +49,12 @@ class mec_document
     wxHtmlWindow& PredominantViewWindow() const;
 
     // wxDocument overrides.
-    virtual bool OnCreate(wxString const& filename, long int flags);
+    bool OnCreate(wxString const& filename, long int flags) override;
 #if !wxCHECK_VERSION(2,9,0)
     virtual bool OnNewDocument();
 #endif // !wxCHECK_VERSION(2,9,0)
-    virtual bool DoOpenDocument(wxString const& filename);
-    virtual bool DoSaveDocument(wxString const& filename);
+    bool DoOpenDocument(wxString const& filename) override;
+    bool DoSaveDocument(wxString const& filename) override;
 
     mec_xml_document doc_;
 
diff --git a/mec_input.hpp b/mec_input.hpp
index 8e97bcc..5aef5b6 100644
--- a/mec_input.hpp
+++ b/mec_input.hpp
@@ -73,7 +73,7 @@ class LMI_SO mec_input
   public:
     mec_input();
     mec_input(mec_input const&);
-    virtual ~mec_input();
+    ~mec_input() override;
 
     mec_input& operator=(mec_input const&);
     bool operator==(mec_input const&) const;
@@ -95,35 +95,35 @@ class LMI_SO mec_input
     void AscribeMembers();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual bool is_detritus(std::string const&) const;
-    virtual void redintegrate_ex_ante
+    bool is_detritus(std::string const&) const override;
+    void redintegrate_ex_ante
         (int                file_version
         ,std::string const& name
         ,std::string      & value
-        ) const;
-    virtual void redintegrate_ex_post
+        ) const override;
+    void redintegrate_ex_post
         (int                                       file_version
         ,std::map<std::string, std::string> const& detritus_map
         ,std::list<std::string>             const& residuary_names
-        );
-    virtual void redintegrate_ad_terminum();
+        ) override;
+    void redintegrate_ad_terminum() override;
 
     // MvcModel required implementation.
-    virtual void DoAdaptExternalities();
-    virtual datum_base const* DoBaseDatumPointer(std::string const&) const;
-    virtual any_entity      & DoEntity(std::string const&)      ;
-    virtual any_entity const& DoEntity(std::string const&) const;
-    virtual NamesType const& DoNames() const;
-    virtual StateType        DoState() const;
-    virtual void DoCustomizeInitialValues();
-    virtual void DoEnforceCircumscription(std::string const&);
-    virtual void DoEnforceProscription   (std::string const&);
-    virtual void DoHarmonize();
-    virtual void DoTransmogrify();
+    void DoAdaptExternalities() override;
+    datum_base const* DoBaseDatumPointer(std::string const&) const override;
+    any_entity      & DoEntity(std::string const&) override      ;
+    any_entity const& DoEntity(std::string const&) const override;
+    NamesType const& DoNames() const override;
+    StateType        DoState() const override;
+    void DoCustomizeInitialValues() override;
+    void DoEnforceCircumscription(std::string const&) override;
+    void DoEnforceProscription   (std::string const&) override;
+    void DoHarmonize() override;
+    void DoTransmogrify() override;
 
     std::string RealizeFlatExtra     ();
     std::string RealizePaymentHistory();
diff --git a/mec_state.hpp b/mec_state.hpp
index e2ed455..47d14bb 100644
--- a/mec_state.hpp
+++ b/mec_state.hpp
@@ -54,7 +54,7 @@ class LMI_SO mec_state
   public:
     mec_state();
     mec_state(mec_state const&);
-    virtual ~mec_state();
+    ~mec_state() override;
 
     mec_state& operator=(mec_state const&);
     bool operator==(mec_state const&) const;
@@ -65,11 +65,11 @@ class LMI_SO mec_state
     void AscribeMembers();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual bool is_detritus(std::string const&) const;
+    bool is_detritus(std::string const&) const override;
 
     int    B0_deduced_policy_year;
     int    B1_deduced_contract_year;
diff --git a/mec_view.hpp b/mec_view.hpp
index fe5fb9a..5591205 100644
--- a/mec_view.hpp
+++ b/mec_view.hpp
@@ -51,13 +51,13 @@ class mec_mvc_view
 {
   public:
     mec_mvc_view();
-    virtual ~mec_mvc_view();
+    ~mec_mvc_view() override;
 
   private:
     // MvcView required implementation.
-    virtual char const* DoBookControlName () const;
-    virtual char const* DoMainDialogName  () const;
-    virtual char const* DoResourceFileName() const;
+    char const* DoBookControlName () const override;
+    char const* DoMainDialogName  () const override;
+    char const* DoResourceFileName() const override;
 };
 
 class mec_view
@@ -69,7 +69,7 @@ class mec_view
 
   public:
     mec_view();
-    virtual ~mec_view();
+    ~mec_view() override;
 
   private:
     mec_document& document() const;
@@ -78,15 +78,15 @@ class mec_view
     void Run();
 
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ViewEx overrides.
-    virtual bool OnCreate(wxDocument*, long int);
+    bool OnCreate(wxDocument*, long int) override;
 
     // wxView overrides.
-    virtual wxPrintout* OnCreatePrintout();
+    wxPrintout* OnCreatePrintout() override;
 
     void UponProperties        (wxCommandEvent&);
     void UponUpdateFileSave    (wxUpdateUIEvent&);
diff --git a/multidimgrid_any.cpp b/multidimgrid_any.cpp
index 7c75fd3..5eb93bc 100644
--- a/multidimgrid_any.cpp
+++ b/multidimgrid_any.cpp
@@ -114,9 +114,9 @@ class MultiDimGridGrid
         ,long style = 0 // no wxWANTS_CHARS, as is wxGrid's default
         ,std::string const& name = wxPanelNameStr
         );
-    virtual ~MultiDimGridGrid();
+    ~MultiDimGridGrid() override;
 
-    virtual wxSize DoGetBestSize() const;
+    wxSize DoGetBestSize() const override;
 
   private:
     void UponKeyDown(wxKeyEvent& event);
diff --git a/multidimgrid_any.hpp b/multidimgrid_any.hpp
index 70f0f1a..f45d41b 100644
--- a/multidimgrid_any.hpp
+++ b/multidimgrid_any.hpp
@@ -477,7 +477,7 @@ class MultiDimGrid
   public:
     /// Default constructor, use Create() to really create the control.
     MultiDimGrid();
-    virtual ~MultiDimGrid();
+    ~MultiDimGrid() override;
 
     MultiDimGrid
         (wxWindow* parent
@@ -529,13 +529,13 @@ class MultiDimGrid
     /// should add color highlighting of selected axis in here.
 
     // wxGridTableBase overrides.
-    virtual int GetNumberCols();
-    virtual int GetNumberRows();
-    virtual bool IsEmptyCell(int row, int col);
-    virtual wxString GetValue(int row, int col);
-    virtual void SetValue(int row, int col, wxString const& value);
-    virtual wxString GetColLabelValue(int col);
-    virtual wxString GetRowLabelValue(int row);
+    int GetNumberCols() override;
+    int GetNumberRows() override;
+    bool IsEmptyCell(int row, int col) override;
+    wxString GetValue(int row, int col) override;
+    void SetValue(int row, int col, wxString const& value) override;
+    wxString GetColLabelValue(int col) override;
+    wxString GetRowLabelValue(int row) override;
 
     unsigned int EnsureIndexIsPositive(int) const;
 
diff --git a/multidimgrid_safe.hpp b/multidimgrid_safe.hpp
index a0149cd..0717d0f 100644
--- a/multidimgrid_safe.hpp
+++ b/multidimgrid_safe.hpp
@@ -71,7 +71,7 @@ class MultiDimAxis
 
     MultiDimAxis(std::string const& name);
 
-    virtual boost::any GetValue(unsigned int n) const;
+    boost::any GetValue(unsigned int n) const override;
 
   protected:
     /// Implement this function returning values of the type ValueType
@@ -107,9 +107,9 @@ class MultiDimEnumAxis
         );
 
     /// Base class virtuals
-    virtual unsigned int GetCardinality() const;
-    virtual std::string  GetLabel(unsigned int n) const;
-    virtual Enum         DoGetValue(unsigned int n) const;
+    unsigned int GetCardinality() const override;
+    std::string  GetLabel(unsigned int n) const override;
+    Enum         DoGetValue(unsigned int n) const override;
 
   private:
     std::vector<std::string> values_;
@@ -150,11 +150,11 @@ class MultiDimIntegralAxis
     /// Modifier for GetMinValue(), GetMaxValue() and GetStep()
     void SetValues(Integral minValue, Integral maxValue, Integral step);
     /// Override MultiDimAxisAny::GetCardinality()
-    virtual unsigned int GetCardinality() const;
+    unsigned int GetCardinality() const override;
     /// Override MultiDimAxisAny::GetLabel()
-    virtual std::string GetLabel(unsigned int n) const;
+    std::string GetLabel(unsigned int n) const override;
     /// Override MultiDimAxis::DoGetValue()
-    virtual Integral DoGetValue(unsigned int n) const;
+    Integral DoGetValue(unsigned int n) const override;
 
   private:
     Integral min_;
@@ -231,10 +231,10 @@ class MultiDimTable
 
   private:
     /// MultiDimTableAny overrides.
-    virtual boost::any DoGetValueAny(Coords const&) const;
-    virtual void       DoSetValueAny(Coords const&, boost::any const&);
-    virtual boost::any  StringToValue(std::string const&) const;
-    virtual std::string ValueToString(boost::any const&) const;
+    boost::any DoGetValueAny(Coords const&) const override;
+    void       DoSetValueAny(Coords const&, boost::any const&) override;
+    boost::any  StringToValue(std::string const&) const override;
+    std::string ValueToString(boost::any const&) const override;
 };
 
 /// Design notes for MultiDimAdjustableAxis<AdjustControl, BaseAxisType>
@@ -285,9 +285,9 @@ class MultiDimAdjustableAxis
 
   private:
     /// MultiDimAxisAny overrides.
-    virtual wxWindow* CreateAdjustControl(MultiDimGrid&, MultiDimTableAny&);
-    virtual bool ApplyAdjustment(wxWindow&, unsigned int axis_id);
-    virtual bool RefreshAdjustment(wxWindow&, unsigned int axis_id);
+    wxWindow* CreateAdjustControl(MultiDimGrid&, MultiDimTableAny&) override;
+    bool ApplyAdjustment(wxWindow&, unsigned int axis_id) override;
+    bool RefreshAdjustment(wxWindow&, unsigned int axis_id) override;
 };
 
 #endif // multidimgrid_safe_hpp
diff --git a/multidimgrid_tools.hpp b/multidimgrid_tools.hpp
index a8c36c4..69688df 100644
--- a/multidimgrid_tools.hpp
+++ b/multidimgrid_tools.hpp
@@ -101,7 +101,7 @@ class AxisMaxBoundAdjuster
     void     SetMaximumAxisValue(Integral max_value);
 
   private:
-    virtual void DoUponChange();
+    void DoUponChange() override;
     void EnsureValidMaximumAxisValue(Integral const&) const;
 
     MultiDimAxisAny& axis_;
@@ -253,15 +253,15 @@ class AdjustableMaxBoundAxis
     Integral GetUpperBound() const;
 
     /// If the axis has been adjusted, then refresh value choice control
-    void UpdateChoiceControl(MultiDimAxisAnyChoice& choice) const;
+    void UpdateChoiceControl(MultiDimAxisAnyChoice& choice) const override;
 
   private:
     /// Create the adjustment control
-    virtual Adjuster* DoCreateAdjustControl(MultiDimGrid&, MultiDimTableAny&);
+    Adjuster* DoCreateAdjustControl(MultiDimGrid&, MultiDimTableAny&) override;
     /// Applies user changes to this axis, reads adjustment window
-    virtual bool DoApplyAdjustment(Adjuster&, unsigned int axis_id);
+    bool DoApplyAdjustment(Adjuster&, unsigned int axis_id) override;
     /// Sync the corresponding adjustment control with itself
-    virtual bool DoRefreshAdjustment(Adjuster&, unsigned int axis_id);
+    bool DoRefreshAdjustment(Adjuster&, unsigned int axis_id) override;
 
     Integral lower_bound_;
     Integral upper_bound_;
@@ -437,10 +437,10 @@ class AutoResizingTreeCtrl
         ,wxValidator const& = wxDefaultValidator
         );
 
-    virtual ~AutoResizingTreeCtrl();
+    ~AutoResizingTreeCtrl() override;
 
   private:
-    virtual wxSize DoGetBestSize() const;
+    wxSize DoGetBestSize() const override;
 
     void DoGetBestSizePrivate
         (wxSize&
diff --git a/mvc_controller.hpp b/mvc_controller.hpp
index 3ad2943..828b203 100644
--- a/mvc_controller.hpp
+++ b/mvc_controller.hpp
@@ -414,7 +414,7 @@ class MvcController
 
   public:
     MvcController(wxWindow* parent, MvcModel&, MvcView const&);
-    ~MvcController();
+    ~MvcController() override;
 
     void TestModelViewConsistency() const;
 
@@ -452,7 +452,7 @@ class MvcController
     void UponUpdateUI              (wxUpdateUIEvent&     );
 
     // wxWindow overrides.
-    virtual bool Validate();
+    bool Validate() override;
 
     // Auxiliary functions to extend wxWindow::FindWindow().
 
diff --git a/null_stream.cpp b/null_stream.cpp
index c31396f..ff68c3c 100644
--- a/null_stream.cpp
+++ b/null_stream.cpp
@@ -48,11 +48,11 @@ class dev_null_stream_buffer
         {
         setp(buffer_, buffer_ + buffer_size_);
         }
-    virtual ~dev_null_stream_buffer()
+    ~dev_null_stream_buffer() override
         {}
 
   private:
-    virtual int_type overflow(int_type c)
+    int_type overflow(int_type c) override
         {
         setp(buffer_, buffer_ + buffer_size_);
         return traits_type::not_eof(c);
diff --git a/policy_document.hpp b/policy_document.hpp
index 4d0563b..61a4f96 100644
--- a/policy_document.hpp
+++ b/policy_document.hpp
@@ -38,7 +38,7 @@ class PolicyDocument
 {
   public:
     PolicyDocument();
-    virtual ~PolicyDocument();
+    ~PolicyDocument() override;
 
     typedef std::map<std::string, std::string*> values_type;
     values_type&       values();
@@ -46,8 +46,8 @@ class PolicyDocument
 
   private:
     // ProductEditorDocument overrides.
-    virtual void ReadDocument (std::string const& filename);
-    virtual void WriteDocument(std::string const& filename);
+    void ReadDocument (std::string const& filename) override;
+    void WriteDocument(std::string const& filename) override;
 
     PolicyView& PredominantView() const;
 
diff --git a/policy_view.hpp b/policy_view.hpp
index a3bf0a0..e53b36b 100644
--- a/policy_view.hpp
+++ b/policy_view.hpp
@@ -42,7 +42,7 @@ class PolicyView
 {
   public:
     PolicyView();
-    virtual ~PolicyView();
+    ~PolicyView() override;
 
     typedef std::map<std::string, wxTextCtrl*> controls_type;
     controls_type&       controls();
@@ -54,13 +54,13 @@ class PolicyView
     PolicyDocument& document() const;
 
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ProductEditorView required implementation.
-    virtual bool IsModified() const;
-    virtual void DiscardEdits();
+    bool IsModified() const override;
+    void DiscardEdits() override;
 
     controls_type controls_;
 
diff --git a/preferences_model.hpp b/preferences_model.hpp
index c5ea75d..fc88a2a 100644
--- a/preferences_model.hpp
+++ b/preferences_model.hpp
@@ -45,7 +45,7 @@ class LMI_SO PreferencesModel
 {
   public:
     PreferencesModel();
-    virtual ~PreferencesModel();
+    ~PreferencesModel() override;
 
     bool IsModified() const;
     void Load();
@@ -57,17 +57,17 @@ class LMI_SO PreferencesModel
     std::string string_of_column_names() const;
 
     // MvcModel required implementation.
-    virtual void DoAdaptExternalities();
-    virtual datum_base const* DoBaseDatumPointer(std::string const&) const;
-    virtual any_entity      & DoEntity(std::string const&)      ;
-    virtual any_entity const& DoEntity(std::string const&) const;
-    virtual NamesType const& DoNames() const;
-    virtual StateType        DoState() const;
-    virtual void DoCustomizeInitialValues();
-    virtual void DoEnforceCircumscription(std::string const&);
-    virtual void DoEnforceProscription   (std::string const&);
-    virtual void DoHarmonize();
-    virtual void DoTransmogrify();
+    void DoAdaptExternalities() override;
+    datum_base const* DoBaseDatumPointer(std::string const&) const override;
+    any_entity      & DoEntity(std::string const&) override      ;
+    any_entity const& DoEntity(std::string const&) const override;
+    NamesType const& DoNames() const override;
+    StateType        DoState() const override;
+    void DoCustomizeInitialValues() override;
+    void DoEnforceCircumscription(std::string const&) override;
+    void DoEnforceProscription   (std::string const&) override;
+    void DoHarmonize() override;
+    void DoTransmogrify() override;
 
     mce_report_column       CalculationSummaryColumn00;
     mce_report_column       CalculationSummaryColumn01;
diff --git a/preferences_view.hpp b/preferences_view.hpp
index 59c5b02..cb38a4c 100644
--- a/preferences_view.hpp
+++ b/preferences_view.hpp
@@ -39,13 +39,13 @@ class PreferencesView
 {
   public:
     PreferencesView();
-    virtual ~PreferencesView();
+    ~PreferencesView() override;
 
   private:
     // MvcView required implementation.
-    virtual char const* DoBookControlName () const;
-    virtual char const* DoMainDialogName  () const;
-    virtual char const* DoResourceFileName() const;
+    char const* DoBookControlName () const override;
+    char const* DoMainDialogName  () const override;
+    char const* DoResourceFileName() const override;
 };
 
 #endif // preferences_view_hpp
diff --git a/previewframe_ex.hpp b/previewframe_ex.hpp
index c789772..b961515 100644
--- a/previewframe_ex.hpp
+++ b/previewframe_ex.hpp
@@ -52,10 +52,10 @@ class PreviewFrameEx
         ,long int            style  = wxDEFAULT_FRAME_STYLE | 
wxFULL_REPAINT_ON_RESIZE
         ,wxString     const& name   = "Loading print preview..."
         );
-    virtual ~PreviewFrameEx();
+    ~PreviewFrameEx() override;
 
     // wxPreviewFrame overrides.
-    virtual void Initialize();
+    void Initialize() override;
 
   private:
     // WX !! Should OnCloseWindow() be virtual in the base class?
diff --git a/product_data.hpp b/product_data.hpp
index 37a4c45..0c3138a 100644
--- a/product_data.hpp
+++ b/product_data.hpp
@@ -91,7 +91,7 @@ class LMI_SO product_data
 
   public:
     explicit product_data(std::string const& product_name);
-    ~product_data();
+    ~product_data() override;
 
     std::string const& datum(std::string const& name) const;
 
@@ -105,37 +105,37 @@ class LMI_SO product_data
     void ascribe_members();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual value_type fetch_element
+    value_type fetch_element
         (xml::element const& e
-        ) const;
-    virtual void read_element
+        ) const override;
+    void read_element
         (xml::element const& e
         ,std::string const&  name
         ,int                 file_version
-        );
-    virtual void write_element
+        ) override;
+    void write_element
         (xml::element&       parent
         ,std::string const&  name
-        ) const;
-    virtual void write_proem
+        ) const override;
+    void write_proem
         (xml_lmi::xml_document& document
         ,std::string const&     file_leaf_name
-        ) const;
-    virtual bool is_detritus(std::string const&) const;
-    virtual void redintegrate_ex_ante
+        ) const override;
+    bool is_detritus(std::string const&) const override;
+    void redintegrate_ex_ante
         (int                file_version
         ,std::string const& name
         ,value_type       & value
-        ) const;
-    virtual void redintegrate_ex_post
+        ) const override;
+    void redintegrate_ex_post
         (int                                     file_version
         ,std::map<std::string,value_type> const& detritus_map
         ,std::list<std::string>           const& residuary_names
-        );
+        ) override;
 
     // Names of files that contain other product data.
     glossed_string DatabaseFilename;
diff --git a/product_editor.hpp b/product_editor.hpp
index fa2cee4..0172c5f 100644
--- a/product_editor.hpp
+++ b/product_editor.hpp
@@ -49,7 +49,7 @@ class ProductEditorDocument
 {
   public:
     ProductEditorDocument();
-    virtual ~ProductEditorDocument();
+    ~ProductEditorDocument() override;
 
   protected:
     virtual void ReadDocument (std::string const& filename) = 0;
@@ -59,10 +59,10 @@ class ProductEditorDocument
     ProductEditorView& PredominantView() const;
 
     // wxDocument overrides.
-    virtual bool IsModified() const;
-    virtual void Modify(bool modified);
-    virtual bool DoOpenDocument(wxString const& filename);
-    virtual bool DoSaveDocument(wxString const& filename);
+    bool IsModified() const override;
+    void Modify(bool modified) override;
+    bool DoOpenDocument(wxString const& filename) override;
+    bool DoSaveDocument(wxString const& filename) override;
 };
 
 /// Common base for all product editor view classes.
@@ -75,7 +75,7 @@ class ProductEditorView
 
   public:
     ProductEditorView();
-    virtual ~ProductEditorView();
+    ~ProductEditorView() override;
 
   protected:
     virtual bool IsModified() const = 0;
@@ -91,7 +91,7 @@ class TreeGridViewBase
 {
   public:
     TreeGridViewBase();
-    virtual ~TreeGridViewBase();
+    ~TreeGridViewBase() override;
 
   protected:
     MultiDimGrid& grid() const;
@@ -108,7 +108,7 @@ class TreeGridViewBase
 
   private:
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
+    wxWindow* CreateChildWindow() override;
 
     // These objects are held by pointer since the destruction is taken care
     // of by wx.
diff --git a/progress_meter_cgi.cpp b/progress_meter_cgi.cpp
index c26af91..ecb9393 100644
--- a/progress_meter_cgi.cpp
+++ b/progress_meter_cgi.cpp
@@ -41,13 +41,13 @@ class concrete_progress_meter
         ,enum_display_mode
         );
 
-    virtual ~concrete_progress_meter();
+    ~concrete_progress_meter() override;
 
   private:
     // progress_meter required implementation.
-    virtual std::string progress_message() const;
-    virtual bool show_progress_message();
-    virtual void culminate_ui();
+    std::string progress_message() const override;
+    bool show_progress_message() override;
+    void culminate_ui() override;
 };
 
 concrete_progress_meter::concrete_progress_meter
diff --git a/progress_meter_cli.cpp b/progress_meter_cli.cpp
index 1497392..083e9f7 100644
--- a/progress_meter_cli.cpp
+++ b/progress_meter_cli.cpp
@@ -81,13 +81,13 @@ class concrete_progress_meter
         ,enum_display_mode
         );
 
-    virtual ~concrete_progress_meter();
+    ~concrete_progress_meter() override;
 
   private:
     // progress_meter required implementation.
-    virtual std::string progress_message() const;
-    virtual bool show_progress_message();
-    virtual void culminate_ui();
+    std::string progress_message() const override;
+    bool show_progress_message() override;
+    void culminate_ui() override;
 
     std::ostream os_;
 };
diff --git a/progress_meter_wx.cpp b/progress_meter_wx.cpp
index 5c93a94..2ce816a 100644
--- a/progress_meter_wx.cpp
+++ b/progress_meter_wx.cpp
@@ -63,15 +63,15 @@ class concrete_progress_meter
         ,enum_display_mode
         );
 
-    virtual ~concrete_progress_meter();
+    ~concrete_progress_meter() override;
 
   private:
     // progress_meter overrides.
-    virtual void do_dawdle(int seconds);
+    void do_dawdle(int seconds) override;
     // progress_meter required implementation.
-    virtual std::string progress_message() const;
-    virtual bool show_progress_message();
-    virtual void culminate_ui();
+    std::string progress_message() const override;
+    bool show_progress_message() override;
+    void culminate_ui() override;
 
     wxProgressDialog progress_dialog_;
 };
diff --git a/rounding_document.hpp b/rounding_document.hpp
index 3f50715..e036c54 100644
--- a/rounding_document.hpp
+++ b/rounding_document.hpp
@@ -38,7 +38,7 @@ class RoundingDocument
 {
   public:
     RoundingDocument();
-    virtual ~RoundingDocument();
+    ~RoundingDocument() override;
 
     typedef std::map<std::string, rounding_parameters*> values_type;
     values_type&       values();
@@ -46,8 +46,8 @@ class RoundingDocument
 
   private:
     // ProductEditorDocument overrides.
-    virtual void ReadDocument (std::string const& filename);
-    virtual void WriteDocument(std::string const& filename);
+    void ReadDocument (std::string const& filename) override;
+    void WriteDocument(std::string const& filename) override;
 
     RoundingView& PredominantView() const;
 
diff --git a/rounding_rules.hpp b/rounding_rules.hpp
index a8084ad..21b1e2b 100644
--- a/rounding_rules.hpp
+++ b/rounding_rules.hpp
@@ -100,7 +100,7 @@ class LMI_SO rounding_rules
 
   public:
     explicit rounding_rules(std::string const& filename);
-    ~rounding_rules();
+    ~rounding_rules() override;
 
     rounding_parameters const& datum(std::string const& name) const;
 
@@ -114,23 +114,23 @@ class LMI_SO rounding_rules
     void ascribe_members();
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual void read_element
+    void read_element
         (xml::element const& e
         ,std::string const&  name
         ,int                 file_version
-        );
-    virtual void write_element
+        ) override;
+    void write_element
         (xml::element&       parent
         ,std::string const&  name
-        ) const;
-    virtual void write_proem
+        ) const override;
+    void write_proem
         (xml_lmi::xml_document& document
         ,std::string const&     file_leaf_name
-        ) const;
+        ) const override;
 
     rounding_parameters round_specamt_           ;
     rounding_parameters round_death_benefit_     ;
diff --git a/rounding_view.hpp b/rounding_view.hpp
index d1b096f..43cba62 100644
--- a/rounding_view.hpp
+++ b/rounding_view.hpp
@@ -41,7 +41,7 @@ class RoundingView
 {
   public:
     RoundingView();
-    virtual ~RoundingView();
+    ~RoundingView() override;
 
     typedef std::map<std::string, RoundingButtons*> controls_type;
     controls_type&       controls();
@@ -53,13 +53,13 @@ class RoundingView
     RoundingDocument& document() const;
 
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ProductEditorView required implementation.
-    virtual bool IsModified() const;
-    virtual void DiscardEdits();
+    bool IsModified() const override;
+    void DiscardEdits() override;
 
     controls_type controls_;
 
diff --git a/rounding_view_editor.hpp b/rounding_view_editor.hpp
index d7cb4f9..05a5806 100644
--- a/rounding_view_editor.hpp
+++ b/rounding_view_editor.hpp
@@ -48,7 +48,7 @@ class RoundingButtons
         ,long               style = 0
         ,std::string const& name  = wxPanelNameStr
         );
-    virtual ~RoundingButtons();
+    ~RoundingButtons() override;
 
     void Create
         (wxWindow*          parent
@@ -108,8 +108,8 @@ class RoundingButtonsXmlHandler
     RoundingButtonsXmlHandler();
 
   private:
-    virtual wxObject* DoCreateResource();
-    virtual bool CanHandle(wxXmlNode* node);
+    wxObject* DoCreateResource() override;
+    bool CanHandle(wxXmlNode* node) override;
 
     DECLARE_DYNAMIC_CLASS(RoundingButtonsXmlHandler)
 };
diff --git a/single_choice_popup_menu.hpp b/single_choice_popup_menu.hpp
index 173adcd..07fde44 100644
--- a/single_choice_popup_menu.hpp
+++ b/single_choice_popup_menu.hpp
@@ -50,7 +50,7 @@ class SingleChoicePopupMenu
         ,wxWindow*            parent = &TopWindow()
         );
 
-    virtual ~SingleChoicePopupMenu();
+    ~SingleChoicePopupMenu() override;
 
     int Choose();
 
diff --git a/skeleton.hpp b/skeleton.hpp
index 8bfd9aa..4654401 100644
--- a/skeleton.hpp
+++ b/skeleton.hpp
@@ -57,7 +57,7 @@ class Skeleton
 {
   public:
     Skeleton();
-    ~Skeleton();
+    ~Skeleton() override;
 
     // Called by view classes when they are instantiated.
     wxMDIChildFrame* CreateChildFrame(wxDocument*, ViewEx*);
@@ -67,15 +67,15 @@ class Skeleton
     virtual DocManagerEx* CreateDocManager();
 
     // wxApp overrides that are further overridden in gui test.
-    virtual void OnAssertFailure
+    void OnAssertFailure
         (wxChar const* file
         ,int           line
         ,wxChar const* func
         ,wxChar const* cond
         ,wxChar const* msg
-        );
-    virtual bool OnExceptionInMainLoop ();
-    virtual bool OnInit                ();
+        ) override;
+    bool OnExceptionInMainLoop () override;
+    bool OnInit                () override;
 
   private:
     wxMenuBar* AdjustMenus(wxMenuBar*);
@@ -126,8 +126,8 @@ class Skeleton
     void UponWindowTileVertically         (wxCommandEvent&);
 
     // wxApp overrides.
-    virtual int  OnExit               ();
-    virtual void OnUnhandledException ();
+    int  OnExit               () override;
+    void OnUnhandledException () override;
 
     bool ProcessCommandLine();
     void OpenCommandLineFiles(std::vector<std::string> const& files);
diff --git a/stratified_charges.hpp b/stratified_charges.hpp
index 59d7391..b7ddde0 100644
--- a/stratified_charges.hpp
+++ b/stratified_charges.hpp
@@ -108,7 +108,7 @@ class LMI_SO stratified_charges
   public:
     stratified_charges(std::string const& filename);
     stratified_charges(stratified_charges const&);
-    ~stratified_charges();
+    ~stratified_charges() override;
 
     stratified_charges& operator=(stratified_charges const&);
 
@@ -160,23 +160,23 @@ class LMI_SO stratified_charges
     stratified_entity& raw_entity(e_stratified);
 
     // xml_serializable required implementation.
-    virtual int                class_version() const;
-    virtual std::string const& xml_root_name() const;
+    int                class_version() const override;
+    std::string const& xml_root_name() const override;
 
     // xml_serializable overrides.
-    virtual void read_element
+    void read_element
         (xml::element const& e
         ,std::string const&  name
         ,int                 file_version
-        );
-    virtual void write_element
+        ) override;
+    void write_element
         (xml::element&       parent
         ,std::string const&  name
-        ) const;
-    virtual void write_proem
+        ) const override;
+    void write_proem
         (xml_lmi::xml_document& document
         ,std::string const&     file_leaf_name
-        ) const;
+        ) const override;
 
     double banded_curr_sepacct_load
         (double assets
diff --git a/text_doc.hpp b/text_doc.hpp
index d80b816..5e81db1 100644
--- a/text_doc.hpp
+++ b/text_doc.hpp
@@ -41,14 +41,14 @@ class TextEditDocument
 {
   public:
     TextEditDocument();
-    virtual ~TextEditDocument();
+    ~TextEditDocument() override;
 
   private:
     // wxDocument overrides.
-    virtual bool IsModified() const;
-    virtual void Modify(bool);
-    virtual bool DoOpenDocument(wxString const& filename);
-    virtual bool DoSaveDocument(wxString const& filename);
+    bool IsModified() const override;
+    void Modify(bool) override;
+    bool DoOpenDocument(wxString const& filename) override;
+    bool DoSaveDocument(wxString const& filename) override;
 
     wxTextCtrl& PredominantViewWindow() const;
 
diff --git a/text_view.hpp b/text_view.hpp
index 37814ce..39c5543 100644
--- a/text_view.hpp
+++ b/text_view.hpp
@@ -58,13 +58,13 @@ class TextEditView
 
   public:
     TextEditView();
-    virtual ~TextEditView();
+    ~TextEditView() override;
 
   private:
     // ViewEx required implementation.
-    virtual wxWindow* CreateChildWindow();
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    wxWindow* CreateChildWindow() override;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     wxTextCtrl* text_window_;
 
diff --git a/tier_document.hpp b/tier_document.hpp
index 4094421..c14b332 100644
--- a/tier_document.hpp
+++ b/tier_document.hpp
@@ -33,14 +33,14 @@ class TierDocument
 {
   public:
     TierDocument();
-    virtual ~TierDocument();
+    ~TierDocument() override;
 
     stratified_entity& get_stratified_entity(e_stratified index);
 
   private:
     // wxDocument overrides.
-    virtual void ReadDocument (std::string const& filename);
-    virtual void WriteDocument(std::string const& filename);
+    void ReadDocument (std::string const& filename) override;
+    void WriteDocument(std::string const& filename) override;
 
     void initialize_charges();
 
diff --git a/tier_view.cpp b/tier_view.cpp
index 1b13204..0bcf857 100644
--- a/tier_view.cpp
+++ b/tier_view.cpp
@@ -69,7 +69,7 @@ class tier_tree_item_data
 {
   public:
     tier_tree_item_data(tier_entity_info const&);
-    virtual ~tier_tree_item_data() {}
+    ~tier_tree_item_data() override {}
 
     tier_entity_info const& entity_info() const;
 
diff --git a/tier_view.hpp b/tier_view.hpp
index a6207c8..855e514 100644
--- a/tier_view.hpp
+++ b/tier_view.hpp
@@ -42,21 +42,21 @@ class TierView
 {
   public:
     TierView();
-    virtual ~TierView();
+    ~TierView() override;
 
   private:
     // ViewEx required implementation.
-    virtual char const* icon_xrc_resource   () const;
-    virtual char const* menubar_xrc_resource() const;
+    char const* icon_xrc_resource   () const override;
+    char const* menubar_xrc_resource() const override;
 
     // ProductEditorView required implementation.
-    virtual bool IsModified() const;
-    virtual void DiscardEdits();
+    bool IsModified() const override;
+    void DiscardEdits() override;
 
     // TreeGridViewBase required implementation.
-    virtual wxTreeCtrl*   CreateTreeCtrl(wxWindow* parent);
-    virtual MultiDimGrid* CreateGridCtrl(wxWindow* parent);
-    virtual void SetupControls();
+    wxTreeCtrl*   CreateTreeCtrl(wxWindow* parent) override;
+    MultiDimGrid* CreateGridCtrl(wxWindow* parent) override;
+    void SetupControls() override;
 
     TierDocument& document() const;
 
diff --git a/tier_view_editor.hpp b/tier_view_editor.hpp
index 01c6b42..a4e47c5 100644
--- a/tier_view_editor.hpp
+++ b/tier_view_editor.hpp
@@ -210,7 +210,7 @@ class TierTableAdapter
     typedef tier_entity_adapter::double_pair double_pair;
 
     TierTableAdapter(tier_entity_adapter entity = tier_entity_adapter());
-    virtual ~TierTableAdapter();
+    ~TierTableAdapter() override;
 
     /// Getter/Setter for the decorated object
     tier_entity_adapter GetTierEntity() const;
@@ -228,15 +228,15 @@ class TierTableAdapter
 
   private:
     // MultiDimTableAny required implementation.
-    virtual bool CanChangeVariationWith(unsigned int n) const;
-    virtual unsigned int DoGetDimension() const {return 1;}
-    virtual void MakeVaryByDimension(unsigned int n, bool varies);
-    virtual AxesAny DoGetAxesAny();
-    virtual bool VariesByDimension(unsigned int n) const;
+    bool CanChangeVariationWith(unsigned int n) const override;
+    unsigned int DoGetDimension() const override {return 1;}
+    void MakeVaryByDimension(unsigned int n, bool varies) override;
+    AxesAny DoGetAxesAny() override;
+    bool VariesByDimension(unsigned int n) const override;
 
     // MultiDimTableAny overrides.
-    virtual bool DoApplyAxisAdjustment(MultiDimAxisAny&, unsigned int n);
-    virtual bool DoRefreshAxisAdjustment(MultiDimAxisAny&, unsigned int n);
+    bool DoApplyAxisAdjustment(MultiDimAxisAny&, unsigned int n) override;
+    bool DoRefreshAxisAdjustment(MultiDimAxisAny&, unsigned int n) override;
 
     void EnsureIndexIsZero(unsigned int) const;
 
@@ -329,7 +329,7 @@ class TierEditorGrid
 
     /// Default constructor, use Create() to really create the control.
     TierEditorGrid();
-    virtual ~TierEditorGrid();
+    ~TierEditorGrid() override;
 
     TierEditorGrid
         (wxWindow* parent
@@ -352,16 +352,16 @@ class TierEditorGrid
     /// columns in the grid.
 
     // MultiDimGrid overrides.
-    virtual unsigned int DoGetNumberCols() const;
-    virtual unsigned int DoGetNumberRows() const;
-    virtual std::string DoGetValue(unsigned int row, unsigned int col) const;
-    virtual void        DoSetValue
+    unsigned int DoGetNumberCols() const override;
+    unsigned int DoGetNumberRows() const override;
+    std::string DoGetValue(unsigned int row, unsigned int col) const override;
+    void        DoSetValue
         (unsigned int row
         ,unsigned int col
         ,std::string const&
-        );
-    virtual std::string DoGetColLabelValue(unsigned int col) const;
-    virtual std::string DoGetRowLabelValue(unsigned int row) const;
+        ) override;
+    std::string DoGetColLabelValue(unsigned int col) const override;
+    std::string DoGetRowLabelValue(unsigned int row) const override;
 
   private:
     enum enum_tier_grid_column
diff --git a/tn_range.hpp b/tn_range.hpp
index a3aff73..d67f831 100644
--- a/tn_range.hpp
+++ b/tn_range.hpp
@@ -248,7 +248,7 @@ class tn_range
     tn_range();
     explicit tn_range(Number);
     explicit tn_range(std::string const&);
-    virtual ~tn_range();
+    ~tn_range() override;
 
     tn_range& operator=(Number);
     tn_range& operator=(std::string const&);
@@ -274,17 +274,17 @@ class tn_range
     bool is_valid(Number) const;
 
     // datum_base required implementation.
-    virtual std::istream& read (std::istream&);
-    virtual std::ostream& write(std::ostream&) const;
+    std::istream& read (std::istream&) override;
+    std::ostream& write(std::ostream&) const override;
 
     // tn_range_base required implementation.
-    virtual std::string diagnose_invalidity(std::string const&) const;
-    virtual void enforce_circumscription();
-    virtual bool equal_to(std::string const&) const;
-    virtual std::string str() const;
-    virtual double universal_minimum() const;
-    virtual double universal_maximum() const;
-    virtual std::type_info const& value_type() const;
+    std::string diagnose_invalidity(std::string const&) const override;
+    void enforce_circumscription() override;
+    bool equal_to(std::string const&) const override;
+    std::string str() const override;
+    double universal_minimum() const override;
+    double universal_maximum() const override;
+    std::type_info const& value_type() const override;
 
     Trammel trammel_;
 
diff --git a/tn_range_test.cpp b/tn_range_test.cpp
index 678b069..7dfd349 100644
--- a/tn_range_test.cpp
+++ b/tn_range_test.cpp
@@ -37,9 +37,9 @@ template<typename T>
 class nonnegative
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return 0.0;}
-    T default_value()   const {return 1.0;}
-    T nominal_maximum() const {return std::numeric_limits<T>::max();}
+    T nominal_minimum() const override {return 0.0;}
+    T default_value()   const override {return 1.0;}
+    T nominal_maximum() const override {return std::numeric_limits<T>::max();}
 };
 
 template class tn_range<double, nonnegative<double> >;
@@ -52,9 +52,9 @@ template<typename T>
 class unbounded
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return -std::numeric_limits<T>::max();}
-    T default_value()   const {return 0.0;}
-    T nominal_maximum() const {return  std::numeric_limits<T>::max();}
+    T nominal_minimum() const override {return -std::numeric_limits<T>::max();}
+    T default_value()   const override {return 0.0;}
+    T nominal_maximum() const override {return  std::numeric_limits<T>::max();}
 };
 
 template class tn_range<double, unbounded<double> >;
@@ -84,9 +84,9 @@ template<typename T>
 class surd
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return 0.069999999999999999;}
-    T default_value()   const {return 0.07;}
-    T nominal_maximum() const {return 0.070000000000000001;}
+    T nominal_minimum() const override {return 0.069999999999999999;}
+    T default_value()   const override {return 0.07;}
+    T nominal_maximum() const override {return 0.070000000000000001;}
 };
 
 template class tn_range<double, surd<double> >;
@@ -99,9 +99,9 @@ template<typename T>
 class absurd
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return 1;}
-    T default_value()   const {return 0;}
-    T nominal_maximum() const {return 0;}
+    T nominal_minimum() const override {return 1;}
+    T default_value()   const override {return 0;}
+    T nominal_maximum() const override {return 0;}
 };
 
 template class tn_range<int, absurd<int> >;
diff --git a/tn_range_test_aux.hpp b/tn_range_test_aux.hpp
index 02bb308..07e5698 100644
--- a/tn_range_test_aux.hpp
+++ b/tn_range_test_aux.hpp
@@ -42,9 +42,9 @@ template<typename T>
 class percentage_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return   0;}
-    T default_value()   const {return   0;}
-    T nominal_maximum() const {return 100;}
+    T nominal_minimum() const override {return   0;}
+    T default_value()   const override {return   0;}
+    T nominal_maximum() const override {return 100;}
 };
 
 typedef tn_range<int, percentage_trammel<int> > r_int_percentage;
@@ -86,9 +86,9 @@ template<typename T>
 class range_udt_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return   0;}
-    T default_value()   const {return   0;}
-    T nominal_maximum() const {return 100;}
+    T nominal_minimum() const override {return   0;}
+    T default_value()   const override {return   0;}
+    T nominal_maximum() const override {return 100;}
 };
 
 typedef tn_range<RangeUDT, range_udt_trammel<RangeUDT> > r_range_udt;
diff --git a/tn_range_type_trammels.hpp b/tn_range_type_trammels.hpp
index c38410c..a9da28f 100644
--- a/tn_range_type_trammels.hpp
+++ b/tn_range_type_trammels.hpp
@@ -39,72 +39,72 @@ template<typename T>
 class percentage_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return   0;}
-    T default_value()   const {return   0;}
-    T nominal_maximum() const {return 100;}
+    T nominal_minimum() const override {return   0;}
+    T default_value()   const override {return   0;}
+    T nominal_maximum() const override {return 100;}
 };
 
 template<typename T>
 class proportion_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return 0;}
-    T default_value()   const {return 0;}
-    T nominal_maximum() const {return 1;}
+    T nominal_minimum() const override {return 0;}
+    T default_value()   const override {return 0;}
+    T nominal_maximum() const override {return 1;}
 };
 
 template<typename T>
 class unrestricted_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return -std::numeric_limits<T>::max();}
-    T default_value()   const {return  0;}
-    T nominal_maximum() const {return  std::numeric_limits<T>::max();}
+    T nominal_minimum() const override {return -std::numeric_limits<T>::max();}
+    T default_value()   const override {return  0;}
+    T nominal_maximum() const override {return  std::numeric_limits<T>::max();}
 };
 
 template<typename T>
 class nonnegative_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return 0;}
-    T default_value()   const {return 0;}
-    T nominal_maximum() const {return std::numeric_limits<T>::max();}
+    T nominal_minimum() const override {return 0;}
+    T default_value()   const override {return 0;}
+    T nominal_maximum() const override {return std::numeric_limits<T>::max();}
 };
 
 template<typename T>
 class age_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return  0;}
-    T default_value()   const {return  0;}
-    T nominal_maximum() const {return 99;}
+    T nominal_minimum() const override {return  0;}
+    T default_value()   const override {return  0;}
+    T nominal_maximum() const override {return 99;}
 };
 
 template<typename T>
 class duration_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return   0;}
-    T default_value()   const {return   0;}
-    T nominal_maximum() const {return 100;}
+    T nominal_minimum() const override {return   0;}
+    T default_value()   const override {return   0;}
+    T nominal_maximum() const override {return 100;}
 };
 
 template<typename T>
 class month_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return  0;}
-    T default_value()   const {return  0;}
-    T nominal_maximum() const {return 11;}
+    T nominal_minimum() const override {return  0;}
+    T default_value()   const override {return  0;}
+    T nominal_maximum() const override {return 11;}
 };
 
 template<typename T>
 class corridor_factor_trammel
     :public trammel_base<T>
 {
-    T nominal_minimum() const {return 1;}
-    T default_value()   const {return 1;}
-    T nominal_maximum() const {return std::numeric_limits<T>::max();}
+    T nominal_minimum() const override {return 1;}
+    T default_value()   const override {return 1;}
+    T nominal_maximum() const override {return std::numeric_limits<T>::max();}
 };
 
 template<typename T>
@@ -114,9 +114,9 @@ class date_trammel
     // Double parentheses: don't parse comma as a macro parameter separator.
     BOOST_STATIC_ASSERT((std::is_same<calendar_date,T>::value));
 
-    T nominal_minimum() const {return gregorian_epoch();}
-    T default_value()   const {return today          ();}
-    T nominal_maximum() const {return last_yyyy_date ();}
+    T nominal_minimum() const override {return gregorian_epoch();}
+    T default_value()   const override {return today          ();}
+    T nominal_maximum() const override {return last_yyyy_date ();}
 };
 
 #endif // tn_range_type_trammels_hpp
diff --git a/transferor.hpp b/transferor.hpp
index bc37a98..929d9d4 100644
--- a/transferor.hpp
+++ b/transferor.hpp
@@ -119,13 +119,13 @@ class Transferor
 {
   public:
     Transferor(std::string& data, std::string const& name);
-    virtual ~Transferor();
+    ~Transferor() override;
 
     // wxValidator overrides.
-    virtual wxObject* Clone() const;
-    virtual bool TransferFromWindow();
-    virtual bool TransferToWindow();
-    virtual bool Validate(wxWindow*);
+    wxObject* Clone() const override;
+    bool TransferFromWindow() override;
+    bool TransferToWindow() override;
+    bool Validate(wxWindow*) override;
 
     std::string const& name() const;
 
diff --git a/view_ex.hpp b/view_ex.hpp
index fcc2e0a..98ec644 100644
--- a/view_ex.hpp
+++ b/view_ex.hpp
@@ -94,7 +94,7 @@ class ViewEx
     wxMenuBar* MenuBar() const;
 
   protected:
-    virtual ~ViewEx();
+    ~ViewEx() override;
 
     wxFrame& FrameWindow() const;
 
@@ -109,9 +109,9 @@ class ViewEx
     virtual char const* menubar_xrc_resource() const = 0;
 
     // wxView overrides.
-    virtual bool OnClose(bool delete_window);
-    virtual bool OnCreate(wxDocument* doc, long int flags);
-    virtual void OnDraw(wxDC*);
+    bool OnClose(bool delete_window) override;
+    bool OnCreate(wxDocument* doc, long int flags) override;
+    void OnDraw(wxDC*) override;
 
     wxIcon     IconFromXmlResource   (char const*) const;
     wxMenuBar* MenuBarFromXmlResource(char const*) const;
diff --git a/wx_test_about_version.cpp b/wx_test_about_version.cpp
index 7ebdb86..1e0be0a 100644
--- a/wx_test_about_version.cpp
+++ b/wx_test_about_version.cpp
@@ -168,7 +168,7 @@ LMI_WX_TEST_CASE(about_dialog_version)
 {
     struct expect_about_dialog : public wxExpectModalBase<wxDialog>
     {
-        virtual int OnInvoked(wxDialog* d) const
+        int OnInvoked(wxDialog* d) const override
             {
             LMI_ASSERT(nullptr != d);
 
@@ -199,7 +199,7 @@ LMI_WX_TEST_CASE(about_dialog_version)
             // And then press the default button in it which opens the license.
             struct expect_license_dialog : public wxExpectModalBase<wxDialog>
             {
-                virtual int OnInvoked(wxDialog* d) const
+                int OnInvoked(wxDialog* d) const override
                     {
                     wxHtmlWindow* const
                         license_win = find_html_window(d, "license");
@@ -228,7 +228,7 @@ LMI_WX_TEST_CASE(about_dialog_version)
                     return wxID_OK;
                     }
 
-                virtual wxString GetDefaultDescription() const
+                wxString GetDefaultDescription() const override
                     {
                     return "license dialog";
                     }
@@ -244,7 +244,7 @@ LMI_WX_TEST_CASE(about_dialog_version)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "about dialog";
             }
diff --git a/wx_test_calculation_summary.cpp b/wx_test_calculation_summary.cpp
index 3efd45a..5ab7427 100644
--- a/wx_test_calculation_summary.cpp
+++ b/wx_test_calculation_summary.cpp
@@ -100,7 +100,7 @@ class expect_preferences_dialog_base
         wxTEST_DIALOG(wxYield(), *this);
         }
 
-    virtual int OnInvoked(MvcController* dialog) const
+    int OnInvoked(MvcController* dialog) const override
         {
         // OnInvoked() is const but it doesn't make much sense for
         // OnPreferencesInvoked() to be const as it is going to modify the
@@ -124,7 +124,7 @@ class expect_preferences_dialog_base
         return self->OnPreferencesInvoked();
         }
 
-    virtual wxString GetDefaultDescription() const
+    wxString GetDefaultDescription() const override
         {
         return "preferences dialog";
         }
@@ -304,7 +304,7 @@ LMI_WX_TEST_CASE(calculation_summary)
 
         struct verify_builtin_calculation_summary : 
expect_preferences_dialog_base
         {
-            virtual int OnPreferencesInvoked()
+            int OnPreferencesInvoked() override
                 {
                 LMI_ASSERT_EQUAL(use_checkbox_->GetValue(), true);
 
@@ -336,7 +336,7 @@ LMI_WX_TEST_CASE(calculation_summary)
     // Use a single "NewCashLoan" custom column in third position.
     struct set_custom_columns_in_preferences_dialog : 
expect_preferences_dialog_base
     {
-        virtual int OnPreferencesInvoked()
+        int OnPreferencesInvoked() override
             {
             set_use_builtin_summary(false);
 
@@ -361,7 +361,7 @@ LMI_WX_TEST_CASE(calculation_summary)
     // Now switch to using the default columns.
     struct use_builtin_calculation_summary : expect_preferences_dialog_base
     {
-        virtual int OnPreferencesInvoked()
+        int OnPreferencesInvoked() override
             {
             // Before returning to the built-in summary, check that our custom
             // value for the column #2 moved into the position #0 (because the
@@ -397,7 +397,7 @@ LMI_WX_TEST_CASE(calculation_summary)
     struct use_custom_calculation_summary : expect_preferences_dialog_base
     {
       public:
-        virtual int OnPreferencesInvoked()
+        int OnPreferencesInvoked() override
             {
             set_use_builtin_summary(false);
 
diff --git a/wx_test_default_update.cpp b/wx_test_default_update.cpp
index f3eeaca..b1e6ebb 100644
--- a/wx_test_default_update.cpp
+++ b/wx_test_default_update.cpp
@@ -61,7 +61,7 @@ LMI_WX_TEST_CASE(default_update)
     struct change_dob_in_defaults_dialog
         :public wxExpectModalBase<MvcController>
     {
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -112,7 +112,7 @@ LMI_WX_TEST_CASE(default_update)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "defaults dialog";
             }
diff --git a/wx_test_input_sequences.cpp b/wx_test_input_sequences.cpp
index 449130e..4bbbd4f 100644
--- a/wx_test_input_sequences.cpp
+++ b/wx_test_input_sequences.cpp
@@ -91,7 +91,7 @@ LMI_WX_TEST_CASE(input_sequences)
             :test_data_(test_data)
         {}
 
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -143,7 +143,7 @@ LMI_WX_TEST_CASE(input_sequences)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "cell properties dialog" + sequence_describe();
             }
diff --git a/wx_test_input_validation.cpp b/wx_test_input_validation.cpp
index 74025f9..cb078de 100644
--- a/wx_test_input_validation.cpp
+++ b/wx_test_input_validation.cpp
@@ -97,7 +97,7 @@ LMI_WX_TEST_CASE(input_validation)
             :value_(value)
         {}
 
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -122,7 +122,7 @@ LMI_WX_TEST_CASE(input_validation)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return wxString::Format
                 ("edit cell dialog for testing COI multiplier \"%s\""
diff --git a/wx_test_paste_census.cpp b/wx_test_paste_census.cpp
index ecb65c3..90e5f0b 100644
--- a/wx_test_paste_census.cpp
+++ b/wx_test_paste_census.cpp
@@ -277,7 +277,7 @@ LMI_WX_TEST_CASE(paste_census)
     struct change_gender_in_class_defaults_dialog
         :public wxExpectModalBase<MvcController>
     {
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -307,7 +307,7 @@ LMI_WX_TEST_CASE(paste_census)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "class defaults dialog";
             }
@@ -350,7 +350,7 @@ LMI_WX_TEST_CASE(paste_census)
     struct change_class_in_case_defaults_dialog
         :public wxExpectModalBase<MvcController>
     {
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -376,7 +376,7 @@ LMI_WX_TEST_CASE(paste_census)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "case defaults dialog";
             }
diff --git a/wx_test_validate_output.cpp b/wx_test_validate_output.cpp
index beaefd5..58fcdfb 100644
--- a/wx_test_validate_output.cpp
+++ b/wx_test_validate_output.cpp
@@ -73,7 +73,7 @@ struct enter_comments_in_case_defaults_dialog
         {
         }
 
-    virtual int OnInvoked(MvcController* dialog) const
+    int OnInvoked(MvcController* dialog) const override
         {
         dialog->Show();
         wxYield();
@@ -103,7 +103,7 @@ struct enter_comments_in_case_defaults_dialog
         return wxID_OK;
         }
 
-    virtual wxString GetDefaultDescription() const
+    wxString GetDefaultDescription() const override
         {
         return "case defaults dialog";
         }
@@ -130,7 +130,7 @@ void init_test_census
             {
             }
 
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             enter_comments_in_case_defaults_dialog::OnInvoked(dialog);
 
@@ -163,7 +163,7 @@ void init_test_census
             {
             }
 
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -177,7 +177,7 @@ void init_test_census
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "census cell dialog";
             }
@@ -456,7 +456,7 @@ LMI_WX_TEST_CASE(validate_output_illustration)
     struct enter_comment_in_illustration_dialog
         :public wxExpectModalBase<MvcController>
     {
-        virtual int OnInvoked(MvcController* dialog) const
+        int OnInvoked(MvcController* dialog) const override
             {
             dialog->Show();
             wxYield();
@@ -470,7 +470,7 @@ LMI_WX_TEST_CASE(validate_output_illustration)
             return wxID_OK;
             }
 
-        virtual wxString GetDefaultDescription() const
+        wxString GetDefaultDescription() const override
             {
             return "illustration properties dialog";
             }



reply via email to

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