lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 8667743 1/6: Replace ...cast<T>(...Query(...)


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 8667743 1/6: Replace ...cast<T>(...Query(...)) with ...Query<T>(...)
Date: Wed, 7 Nov 2018 02:40:34 -0500 (EST)

branch: master
commit 86677431bed616625c993431026a81e7d7016378
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Replace ...cast<T>(...Query(...)) with ...Query<T>(...)
    
    After these changes, this command
      grep 'cast.*Query' *.?pp
    finds only
      ihs_basicval.cpp: ,bourn_cast<int>(database().Query(TableID))
      ihs_basicval.cpp: ,bourn_cast<int>(database().Query(TableID, index))
    The second line uses a nondefault 'index', and no function template is
    supplied for that extraordinary use case. The first line cleaves to its
    original form for concinnity with the second.
    
    These changes are at least terser (if bourn_cast had been used), and
    also safer (if static_cast had been used). They still aren't ideal
    because in a typical case like this:
    -    maturity_age_ = static_cast<int>(Query(DB_MaturityAge));
    +    maturity_age_ = query<int>(DB_MaturityAge);
    either 'maturity_age_' is of type int and the explicit template
    parameter is redundant, or it is not and the explicit template
    parameter is incorrect. Later commits will address this, thus e.g.:
    -    maturity_age_ = query<int>(DB_MaturityAge);
    +    query_into<int>(DB_MaturityAge, maturity_age_);
    transitionally, and eventually thus:
    -    query_into<int>(DB_MaturityAge, maturity_age_);
    +    query_into(DB_MaturityAge, maturity_age_);
---
 basicvalues.cpp         |  6 +++---
 database.cpp            |  2 +-
 gpt_input.cpp           |  8 ++++----
 gpt_server.cpp          | 11 +++++------
 ihs_basicval.cpp        | 30 +++++++++++++++---------------
 input_harmonization.cpp | 14 +++++++-------
 input_xml_io.cpp        |  2 +-
 interest_rates.cpp      |  2 +-
 mec_input.cpp           |  8 ++++----
 mec_server.cpp          | 11 +++++------
 mortality_rates.cpp     | 10 +++++-----
 11 files changed, 51 insertions(+), 53 deletions(-)

diff --git a/basicvalues.cpp b/basicvalues.cpp
index 04bc09b..d3415b1 100644
--- a/basicvalues.cpp
+++ b/basicvalues.cpp
@@ -97,12 +97,12 @@ void BasicValues::Init()
     PremiumTaxState_     = yare_input_.PremiumTaxState    ;
 
     // The database class constrains maturity age to be scalar.
-    EndtAge = static_cast<int>(database().Query(DB_MaturityAge));
+    EndtAge = database().query<int>(DB_MaturityAge);
     Length = EndtAge - IssueAge;
 
     database().query_into(DB_LedgerType, ledger_type_);
-    nonillustrated_       = 
static_cast<bool>(database().Query(DB_Nonillustrated));
-    bool no_longer_issued = 
static_cast<bool>(database().Query(DB_NoLongerIssued));
+    nonillustrated_       = database().query<bool>(DB_Nonillustrated);
+    bool no_longer_issued = database().query<bool>(DB_NoLongerIssued);
     bool is_new_business  = yare_input_.EffectiveDate == 
yare_input_.InforceAsOfDate;
     no_can_issue_         = no_longer_issued && is_new_business;
     IsSubjectToIllustrationReg_ = is_subject_to_ill_reg(ledger_type());
diff --git a/database.cpp b/database.cpp
index 2f3375d..1719553 100644
--- a/database.cpp
+++ b/database.cpp
@@ -206,7 +206,7 @@ void product_database::initialize(std::string const& 
product_name)
         LMI_ASSERT(!filename.empty());
         db_ = DBDictionary::read_via_cache(AddDataDir(filename));
         }
-    maturity_age_ = static_cast<int>(Query(DB_MaturityAge));
+    maturity_age_ = query<int>(DB_MaturityAge);
     length_ = maturity_age_ - index_.index_vector()[e_axis_issue_age];
     LMI_ASSERT(0 < length_ && length_ <= methuselah);
 }
diff --git a/gpt_input.cpp b/gpt_input.cpp
index 465dcf4..8f714be 100644
--- a/gpt_input.cpp
+++ b/gpt_input.cpp
@@ -274,7 +274,7 @@ void gpt_input::DoAdaptExternalities()
             )
         );
 
-    GleanedMaturityAge_ = static_cast<int>(database_->Query(DB_MaturityAge));
+    GleanedMaturityAge_ = database_->query<int>(DB_MaturityAge);
 }
 
 datum_base const* gpt_input::DoBaseDatumPointer
@@ -390,8 +390,8 @@ void gpt_input::DoHarmonize()
 // Temporarily suppress this while exploring automatic-
 // enforcement options in the skeleton trunk.
     IssueAge.minimum_and_maximum
-        (static_cast<int>(database_->Query(DB_MinIssAge))
-        ,static_cast<int>(database_->Query(DB_MaxIssAge))
+        (database_->query<int>(DB_MinIssAge)
+        ,database_->query<int>(DB_MaxIssAge)
         );
 #endif // 0
 
@@ -409,7 +409,7 @@ void gpt_input::DoHarmonize()
         ,maximum_birthdate(IssueAge.minimum(), EffectiveDate.value(), alb_anb)
         );
 
-    int max_age = static_cast<int>(database_->Query(DB_MaturityAge));
+    int max_age = database_->query<int>(DB_MaturityAge);
     InforceAsOfDate.minimum_and_maximum
         (EffectiveDate.value()
         ,add_years_and_months
diff --git a/gpt_server.cpp b/gpt_server.cpp
index 7baf932..951b51d 100644
--- a/gpt_server.cpp
+++ b/gpt_server.cpp
@@ -26,7 +26,6 @@
 #include "actuarial_table.hpp"
 #include "alert.hpp"
 #include "assert_lmi.hpp"
-#include "bourn_cast.hpp"
 #include "commutation_functions.hpp"
 #include "configurable_settings.hpp"
 #include "contains.hpp"
@@ -142,13 +141,13 @@ gpt_state test_one_days_gpt_transactions
     round_to<double> const round_max_premium(2, r_downward);
 
     oenum_modal_prem_type const target_premium_type =
-        
static_cast<oenum_modal_prem_type>(static_cast<int>(database.Query(DB_TgtPremType)));
+        database.query<oenum_modal_prem_type>(DB_TgtPremType);
     std::vector<double> TargetPremiumRates(input.years_to_maturity());
     if(oe_modal_table == target_premium_type)
         {
         TargetPremiumRates = actuarial_table_rates
             (AddDataDir(product_filenames.datum("TgtPremFilename"))
-            ,bourn_cast<int>(database.Query(DB_TgtPremTable))
+            ,database.query<int>(DB_TgtPremTable)
             ,input.issue_age()
             ,input.years_to_maturity()
             );
@@ -160,7 +159,7 @@ gpt_state test_one_days_gpt_transactions
 
     std::vector<double> const CvatCorridorFactors = actuarial_table_rates
         (AddDataDir(product_filenames.datum("CvatCorridorFilename"))
-        ,bourn_cast<int>(database.Query(DB_CorridorTable))
+        ,database.query<int>(DB_CorridorTable)
         ,input.issue_age()
         ,input.years_to_maturity()
         );
@@ -175,14 +174,14 @@ gpt_state test_one_days_gpt_transactions
 
     std::vector<double> const tabular_7Px = actuarial_table_rates
         (AddDataDir(product_filenames.datum("SevenPayFilename"))
-        ,bourn_cast<int>(database.Query(DB_SevenPayTable))
+        ,database.query<int>(DB_SevenPayTable)
         ,input.issue_age()
         ,input.years_to_maturity()
         );
 
     std::vector<double> Mly7702qc = actuarial_table_rates
         (AddDataDir(product_filenames.datum("Irc7702QFilename"))
-        ,bourn_cast<int>(database.Query(DB_Irc7702QTable))
+        ,database.query<int>(DB_Irc7702QTable)
         ,input.issue_age()
         ,input.years_to_maturity()
         );
diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index 3da3c57..804326d 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -173,12 +173,12 @@ void BasicValues::Init()
     LMI_ASSERT(RetAge <= 100);
     LMI_ASSERT(yare_input_.RetireesCanEnroll || IssueAge <= RetAge);
 
-    EndtAge = static_cast<int>(database().Query(DB_MaturityAge));
+    EndtAge = database().query<int>(DB_MaturityAge);
     Length = EndtAge - IssueAge;
 
     database().query_into(DB_LedgerType, ledger_type_);
-    nonillustrated_       = 
static_cast<bool>(database().Query(DB_Nonillustrated));
-    bool no_longer_issued = 
static_cast<bool>(database().Query(DB_NoLongerIssued));
+    nonillustrated_       = database().query<bool>(DB_Nonillustrated);
+    bool no_longer_issued = database().query<bool>(DB_NoLongerIssued);
     bool is_new_business  = yare_input_.EffectiveDate == 
yare_input_.InforceAsOfDate;
     no_can_issue_         = no_longer_issued && is_new_business;
     IsSubjectToIllustrationReg_ = is_subject_to_ill_reg(ledger_type());
@@ -261,7 +261,7 @@ void BasicValues::GPTServerInit()
     StateOfJurisdiction_ = yare_input_.StateOfJurisdiction;
     PremiumTaxState_     = yare_input_.PremiumTaxState    ;
 
-    EndtAge = static_cast<int>(database().Query(DB_MaturityAge));
+    EndtAge = database().query<int>(DB_MaturityAge);
     Length = EndtAge - IssueAge;
 
     yare_input_.ExtraMonthlyCustodialFee  .resize(Length);
@@ -273,8 +273,8 @@ void BasicValues::GPTServerInit()
     yare_input_.FlatExtra                 .resize(Length);
 
     database().query_into(DB_LedgerType, ledger_type_);
-    nonillustrated_       = 
static_cast<bool>(database().Query(DB_Nonillustrated));
-    bool no_longer_issued = 
static_cast<bool>(database().Query(DB_NoLongerIssued));
+    nonillustrated_       = database().query<bool>(DB_Nonillustrated);
+    bool no_longer_issued = database().query<bool>(DB_NoLongerIssued);
     bool is_new_business  = yare_input_.EffectiveDate == 
yare_input_.InforceAsOfDate;
     no_can_issue_         = no_longer_issued && is_new_business;
     IsSubjectToIllustrationReg_ = is_subject_to_ill_reg(ledger_type());
@@ -617,11 +617,11 @@ void BasicValues::SetPermanentInvariants()
     WDCanDecrSADBO1     = database().Query(DB_WdCanDecrSpecAmtDbo1 );
     WDCanDecrSADBO2     = database().Query(DB_WdCanDecrSpecAmtDbo2 );
     WDCanDecrSADBO3     = database().Query(DB_WdCanDecrSpecAmtDbo3 );
-    MaxIncrAge          = static_cast<int>(database().Query(DB_MaxIncrAge));
+    MaxIncrAge          = database().query<int>(DB_MaxIncrAge);
     WaivePmTxInt1035    = database().Query(DB_WaivePremTaxInt1035  );
     TermIsNotRider      = database().Query(DB_TermIsNotRider       );
-    TermForcedConvAge   = 
static_cast<int>(database().Query(DB_TermForcedConvAge));
-    TermForcedConvDur   = 
static_cast<int>(database().Query(DB_TermForcedConvDur));
+    TermForcedConvAge   = database().query<int>(DB_TermForcedConvAge);
+    TermForcedConvDur   = database().query<int>(DB_TermForcedConvDur);
     ExpPerKLimit        = database().Query(DB_ExpSpecAmtLimit      );
     database().query_into(DB_MinPremType, MinPremType);
     database().query_into(DB_TgtPremType, TgtPremType);
@@ -640,12 +640,12 @@ void BasicValues::SetPermanentInvariants()
     database().query_into(DB_MaxWdDed         , MaxWDDed_        );
     MaxWdGenAcctValMult = database().Query(DB_MaxWdGenAcctValMult  );
     MaxWdSepAcctValMult = database().Query(DB_MaxWdSepAcctValMult  );
-    AllowPrefLoan       = 
static_cast<bool>(database().Query(DB_AllowPrefLoan));
+    AllowPrefLoan       = database().query<bool>(DB_AllowPrefLoan);
     database().query_into(DB_MaxLoanDed       ,MaxLoanDed_);
     MaxLoanAVMult       = database().Query(DB_MaxLoanAcctValMult   );
-    FirstPrefLoanYear   = 
static_cast<int>(database().Query(DB_FirstPrefLoanYear));
-    NoLapseMinDur       = static_cast<int>(database().Query(DB_NoLapseMinDur));
-    NoLapseMinAge       = static_cast<int>(database().Query(DB_NoLapseMinAge));
+    FirstPrefLoanYear   = database().query<int>(DB_FirstPrefLoanYear);
+    NoLapseMinDur       = database().query<int>(DB_NoLapseMinDur);
+    NoLapseMinAge       = database().query<int>(DB_NoLapseMinAge);
     AdbLimit            = database().Query(DB_AdbLimit             );
     WpLimit             = database().Query(DB_WpLimit              );
     SpecAmtLoadLimit    = database().Query(DB_SpecAmtLoadLimit     );
@@ -1967,7 +1967,7 @@ std::vector<double> 
BasicValues::GetCurrentSpouseRiderRates() const
 
     std::vector<double> z = actuarial_table_rates
         (AddDataDir(product().datum("CurrSpouseRiderFilename"))
-        ,bourn_cast<int>(database().Query(DB_SpouseRiderTable))
+        ,database().query<int>(DB_SpouseRiderTable)
         ,yare_input_.SpouseIssueAge
         ,EndtAge - yare_input_.SpouseIssueAge
         );
@@ -1984,7 +1984,7 @@ std::vector<double> 
BasicValues::GetGuaranteedSpouseRiderRates() const
 
     std::vector<double> z = actuarial_table_rates
         (AddDataDir(product().datum("GuarSpouseRiderFilename"))
-        ,bourn_cast<int>(database().Query(DB_SpouseRiderGuarTable))
+        ,database().query<int>(DB_SpouseRiderGuarTable)
         ,yare_input_.SpouseIssueAge
         ,EndtAge - yare_input_.SpouseIssueAge
         );
diff --git a/input_harmonization.cpp b/input_harmonization.cpp
index 319f2ef..96f1fb0 100644
--- a/input_harmonization.cpp
+++ b/input_harmonization.cpp
@@ -93,7 +93,7 @@ void Input::DoAdaptExternalities()
             )
         );
 
-    GleanedMaturityAge_ = static_cast<int>(database_->Query(DB_MaturityAge));
+    GleanedMaturityAge_ = database_->query<int>(DB_MaturityAge);
 
     database_->query_into(DB_LedgerType, GleanedLedgerType_);
 }
@@ -258,8 +258,8 @@ void Input::DoHarmonize()
 //    attained_age   [x, omega - 1]
 //    duration       [0, omega-x-1]
     IssueAge.minimum_and_maximum
-        (static_cast<int>(database_->Query(DB_MinIssAge))
-        ,static_cast<int>(database_->Query(DB_MaxIssAge))
+        (database_->query<int>(DB_MinIssAge)
+        ,database_->query<int>(DB_MaxIssAge)
         );
 //    RetirementAge.minimum_and_maximum(...
 #endif // 0
@@ -370,8 +370,8 @@ void Input::DoHarmonize()
         ,InforceYear  .value()
         ,true
         );
-    calendar_date 
reset_min(jdn_t(static_cast<int>(database_->Query(DB_CoiResetMinDate))));
-    calendar_date 
reset_max(jdn_t(static_cast<int>(database_->Query(DB_CoiResetMaxDate))));
+    calendar_date reset_min(jdn_t(database_->query<int>(DB_CoiResetMinDate)));
+    calendar_date reset_max(jdn_t(database_->query<int>(DB_CoiResetMaxDate)));
     reset_min = std::min(reset_min, most_recent_anniversary);
     reset_max = std::min(reset_max, most_recent_anniversary);
     if(!global_settings::instance().regression_testing())
@@ -485,8 +485,8 @@ void Input::DoHarmonize()
     // 'SpouseIssueAge' is useful only if the spouse rider is elected,
     // so it makes more sense to constrain its value this way.
     SpouseIssueAge   .minimum_and_maximum
-        (static_cast<int>(database_->Query(DB_SpouseRiderMinIssAge))
-        ,static_cast<int>(database_->Query(DB_SpouseRiderMaxIssAge))
+        (database_->query<int>(DB_SpouseRiderMinIssAge)
+        ,database_->query<int>(DB_SpouseRiderMaxIssAge)
         );
 
     bool allow_honeymoon = database_->Query(DB_AllowHoneymoon);
diff --git a/input_xml_io.cpp b/input_xml_io.cpp
index 42050cf..c4f12df 100644
--- a/input_xml_io.cpp
+++ b/input_xml_io.cpp
@@ -518,7 +518,7 @@ void Input::redintegrate_ex_post
                     ;
                 }
 
-            switch(static_cast<int>(db.Query(DB_PremTaxState)))
+            switch(db.query<int>(DB_PremTaxState))
                 {
                 case oe_ee_state:
                     {
diff --git a/interest_rates.cpp b/interest_rates.cpp
index fd3e69a..0a9166e 100644
--- a/interest_rates.cpp
+++ b/interest_rates.cpp
@@ -258,7 +258,7 @@ InterestRates::InterestRates(BasicValues const& v)
     ,GenAcctRateType_    {v.yare_input_.GeneralAccountRateType}
     ,NeedSepAcctRates_   {0.0 != v.database().Query(DB_AllowSepAcct)}
     ,SepAcctRateType_    {v.yare_input_.SeparateAccountRateType}
-    
,SepAcctSpreadMethod_{static_cast<mcenum_spread_method>(static_cast<int>(v.database().Query(DB_SepAcctSpreadMethod)))}
+    
,SepAcctSpreadMethod_{v.database().query<mcenum_spread_method>(DB_SepAcctSpreadMethod)}
     ,AmortLoad_          {Zero_}
     ,ExtraSepAcctCharge_ {Zero_}
 //    ,NeedLoanRates_      {need_loan_rates(v.yare_input_)}
diff --git a/mec_input.cpp b/mec_input.cpp
index 3a93c3e..e267760 100644
--- a/mec_input.cpp
+++ b/mec_input.cpp
@@ -241,7 +241,7 @@ void mec_input::DoAdaptExternalities()
             )
         );
 
-    GleanedMaturityAge_ = static_cast<int>(database_->Query(DB_MaturityAge));
+    GleanedMaturityAge_ = database_->query<int>(DB_MaturityAge);
 }
 
 datum_base const* mec_input::DoBaseDatumPointer
@@ -357,8 +357,8 @@ void mec_input::DoHarmonize()
 // Temporarily suppress this while exploring automatic-
 // enforcement options in the skeleton trunk.
     IssueAge.minimum_and_maximum
-        (static_cast<int>(database_->Query(DB_MinIssAge))
-        ,static_cast<int>(database_->Query(DB_MaxIssAge))
+        (database_->query<int>(DB_MinIssAge)
+        ,database_->query<int>(DB_MaxIssAge)
         );
 #endif // 0
 
@@ -376,7 +376,7 @@ void mec_input::DoHarmonize()
         ,maximum_birthdate(IssueAge.minimum(), EffectiveDate.value(), alb_anb)
         );
 
-    int max_age = static_cast<int>(database_->Query(DB_MaturityAge));
+    int max_age = database_->query<int>(DB_MaturityAge);
     InforceAsOfDate.minimum_and_maximum
         (EffectiveDate.value()
         ,add_years_and_months
diff --git a/mec_server.cpp b/mec_server.cpp
index 4facd5a..2d4e6c8 100644
--- a/mec_server.cpp
+++ b/mec_server.cpp
@@ -26,7 +26,6 @@
 #include "actuarial_table.hpp"
 #include "alert.hpp"
 #include "assert_lmi.hpp"
-#include "bourn_cast.hpp"
 #include "commutation_functions.hpp"
 #include "configurable_settings.hpp"
 #include "contains.hpp"
@@ -125,13 +124,13 @@ mec_state test_one_days_7702A_transactions
     round_to<double> const round_max_premium(2, r_downward);
 
     oenum_modal_prem_type const target_premium_type =
-        
static_cast<oenum_modal_prem_type>(static_cast<int>(database.Query(DB_TgtPremType)));
+        database.query<oenum_modal_prem_type>(DB_TgtPremType);
     std::vector<double> TargetPremiumRates(input.years_to_maturity());
     if(oe_modal_table == target_premium_type)
         {
         TargetPremiumRates = actuarial_table_rates
             (AddDataDir(product_filenames.datum("TgtPremFilename"))
-            ,bourn_cast<int>(database.Query(DB_TgtPremTable))
+            ,database.query<int>(DB_TgtPremTable)
             ,input.issue_age()
             ,input.years_to_maturity()
             );
@@ -143,7 +142,7 @@ mec_state test_one_days_7702A_transactions
 
     std::vector<double> const CvatCorridorFactors = actuarial_table_rates
         (AddDataDir(product_filenames.datum("CvatCorridorFilename"))
-        ,bourn_cast<int>(database.Query(DB_CorridorTable))
+        ,database.query<int>(DB_CorridorTable)
         ,input.issue_age()
         ,input.years_to_maturity()
         );
@@ -158,14 +157,14 @@ mec_state test_one_days_7702A_transactions
 
     std::vector<double> const tabular_7Px = actuarial_table_rates
         (AddDataDir(product_filenames.datum("SevenPayFilename"))
-        ,bourn_cast<int>(database.Query(DB_SevenPayTable))
+        ,database.query<int>(DB_SevenPayTable)
         ,input.issue_age()
         ,input.years_to_maturity()
         );
 
     std::vector<double> Mly7702qc = actuarial_table_rates
         (AddDataDir(product_filenames.datum("Irc7702QFilename"))
-        ,bourn_cast<int>(database.Query(DB_Irc7702QTable))
+        ,database.query<int>(DB_Irc7702QTable)
         ,input.issue_age()
         ,input.years_to_maturity()
         );
diff --git a/mortality_rates.cpp b/mortality_rates.cpp
index 7749736..d3b91d3 100644
--- a/mortality_rates.cpp
+++ b/mortality_rates.cpp
@@ -47,14 +47,14 @@ void MortalityRates::Init(BasicValues const& basic_values)
 
     MonthlyCurrentCoiRatesBand0_ = actuarial_table_rates
         (CurrentTableFile()
-        ,bourn_cast<int>(basic_values.database().Query(DB_CurrCoiTable))
+        ,basic_values.database().query<int>(DB_CurrCoiTable)
         ,issue_age
         ,length
         );
 
     MonthlyGuaranteedCoiRates_ = actuarial_table_rates
         (GuaranteedTableFile()
-        ,bourn_cast<int>(basic_values.database().Query(DB_GuarCoiTable))
+        ,basic_values.database().query<int>(DB_GuarCoiTable)
         ,issue_age
         ,length
         );
@@ -73,21 +73,21 @@ void MortalityRates::Init(BasicValues const& basic_values)
 
     CvatCorridorFactors_ = actuarial_table_rates
         (CurrentTableFile()
-        ,bourn_cast<int>(basic_values.database().Query(DB_CorridorTable))
+        ,basic_values.database().query<int>(DB_CorridorTable)
         ,issue_age
         ,length
         );
 
     AdbRates_ = actuarial_table_rates
         (CurrentTableFile()
-        ,bourn_cast<int>(basic_values.database().Query(DB_AdbTable))
+        ,basic_values.database().query<int>(DB_AdbTable)
         ,issue_age
         ,length
         );
 
     WpRates_ = actuarial_table_rates
         (CurrentTableFile()
-        ,bourn_cast<int>(basic_values.database().Query(DB_WpTable))
+        ,basic_values.database().query<int>(DB_WpTable)
         ,issue_age
         ,length
         );



reply via email to

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