lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 937ceba 3/6: Strengthen type checking


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 937ceba 3/6: Strengthen type checking
Date: Wed, 7 Nov 2018 02:40:34 -0500 (EST)

branch: master
commit 937cebac45c369f0450d5e16121d2cf0391aa5b6
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Strengthen type checking
    
    Given two different types T and U, this is an improvement:
         U u;
    -    u = query<T>(db_key);
    +    query_into<T>(db_key, u);
    because the former might compile, but the latter won't.
---
 basicvalues.cpp         |  4 ++--
 database.cpp            |  2 +-
 gpt_input.cpp           |  4 ++--
 gpt_server.cpp          |  3 +--
 ihs_basicval.cpp        | 22 +++++++++++-----------
 input_harmonization.cpp |  2 +-
 mec_server.cpp          |  3 +--
 7 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/basicvalues.cpp b/basicvalues.cpp
index d3415b1..1eece92 100644
--- a/basicvalues.cpp
+++ b/basicvalues.cpp
@@ -97,11 +97,11 @@ void BasicValues::Init()
     PremiumTaxState_     = yare_input_.PremiumTaxState    ;
 
     // The database class constrains maturity age to be scalar.
-    EndtAge = database().query<int>(DB_MaturityAge);
+    database().query_into<int>(DB_MaturityAge, EndtAge);
     Length = EndtAge - IssueAge;
 
     database().query_into(DB_LedgerType, ledger_type_);
-    nonillustrated_       = database().query<bool>(DB_Nonillustrated);
+    database().query_into<bool>(DB_Nonillustrated, 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;
diff --git a/database.cpp b/database.cpp
index 1719553..76cbe65 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_ = query<int>(DB_MaturityAge);
+    query_into<int>(DB_MaturityAge, maturity_age_);
     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 8f714be..9cec048 100644
--- a/gpt_input.cpp
+++ b/gpt_input.cpp
@@ -274,7 +274,7 @@ void gpt_input::DoAdaptExternalities()
             )
         );
 
-    GleanedMaturityAge_ = database_->query<int>(DB_MaturityAge);
+    database_->query_into<int>(DB_MaturityAge, GleanedMaturityAge_);
 }
 
 datum_base const* gpt_input::DoBaseDatumPointer
@@ -409,7 +409,7 @@ void gpt_input::DoHarmonize()
         ,maximum_birthdate(IssueAge.minimum(), EffectiveDate.value(), alb_anb)
         );
 
-    int max_age = database_->query<int>(DB_MaturityAge);
+    int const 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 951b51d..5122231 100644
--- a/gpt_server.cpp
+++ b/gpt_server.cpp
@@ -140,8 +140,7 @@ gpt_state test_one_days_gpt_transactions
     round_to<double> const RoundNonMecPrem(2, r_downward);
     round_to<double> const round_max_premium(2, r_downward);
 
-    oenum_modal_prem_type const target_premium_type =
-        database.query<oenum_modal_prem_type>(DB_TgtPremType);
+    auto const target_premium_type = 
database.query<oenum_modal_prem_type>(DB_TgtPremType);
     std::vector<double> TargetPremiumRates(input.years_to_maturity());
     if(oe_modal_table == target_premium_type)
         {
diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index 804326d..69e7db0 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -173,11 +173,11 @@ void BasicValues::Init()
     LMI_ASSERT(RetAge <= 100);
     LMI_ASSERT(yare_input_.RetireesCanEnroll || IssueAge <= RetAge);
 
-    EndtAge = database().query<int>(DB_MaturityAge);
+    database().query_into<int>(DB_MaturityAge, EndtAge);
     Length = EndtAge - IssueAge;
 
     database().query_into(DB_LedgerType, ledger_type_);
-    nonillustrated_       = database().query<bool>(DB_Nonillustrated);
+    database().query_into<bool>(DB_Nonillustrated, 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;
@@ -261,7 +261,7 @@ void BasicValues::GPTServerInit()
     StateOfJurisdiction_ = yare_input_.StateOfJurisdiction;
     PremiumTaxState_     = yare_input_.PremiumTaxState    ;
 
-    EndtAge = database().query<int>(DB_MaturityAge);
+    database().query_into<int>(DB_MaturityAge, EndtAge);
     Length = EndtAge - IssueAge;
 
     yare_input_.ExtraMonthlyCustodialFee  .resize(Length);
@@ -273,7 +273,7 @@ void BasicValues::GPTServerInit()
     yare_input_.FlatExtra                 .resize(Length);
 
     database().query_into(DB_LedgerType, ledger_type_);
-    nonillustrated_       = database().query<bool>(DB_Nonillustrated);
+    database().query_into<bool>(DB_Nonillustrated, 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;
@@ -617,11 +617,11 @@ void BasicValues::SetPermanentInvariants()
     WDCanDecrSADBO1     = database().Query(DB_WdCanDecrSpecAmtDbo1 );
     WDCanDecrSADBO2     = database().Query(DB_WdCanDecrSpecAmtDbo2 );
     WDCanDecrSADBO3     = database().Query(DB_WdCanDecrSpecAmtDbo3 );
-    MaxIncrAge          = database().query<int>(DB_MaxIncrAge);
+    database().query_into<int>(DB_MaxIncrAge, MaxIncrAge);
     WaivePmTxInt1035    = database().Query(DB_WaivePremTaxInt1035  );
     TermIsNotRider      = database().Query(DB_TermIsNotRider       );
-    TermForcedConvAge   = database().query<int>(DB_TermForcedConvAge);
-    TermForcedConvDur   = database().query<int>(DB_TermForcedConvDur);
+    database().query_into<int>(DB_TermForcedConvAge, TermForcedConvAge);
+    database().query_into<int>(DB_TermForcedConvDur, 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       = database().query<bool>(DB_AllowPrefLoan);
+    database().query_into<bool>(DB_AllowPrefLoan, AllowPrefLoan);
     database().query_into(DB_MaxLoanDed       ,MaxLoanDed_);
     MaxLoanAVMult       = database().Query(DB_MaxLoanAcctValMult   );
-    FirstPrefLoanYear   = database().query<int>(DB_FirstPrefLoanYear);
-    NoLapseMinDur       = database().query<int>(DB_NoLapseMinDur);
-    NoLapseMinAge       = database().query<int>(DB_NoLapseMinAge);
+    database().query_into<int>(DB_FirstPrefLoanYear, FirstPrefLoanYear);
+    database().query_into<int>(DB_NoLapseMinDur    , NoLapseMinDur);
+    database().query_into<int>(DB_NoLapseMinAge    , NoLapseMinAge);
     AdbLimit            = database().Query(DB_AdbLimit             );
     WpLimit             = database().Query(DB_WpLimit              );
     SpecAmtLoadLimit    = database().Query(DB_SpecAmtLoadLimit     );
diff --git a/input_harmonization.cpp b/input_harmonization.cpp
index 96f1fb0..552f9e1 100644
--- a/input_harmonization.cpp
+++ b/input_harmonization.cpp
@@ -93,7 +93,7 @@ void Input::DoAdaptExternalities()
             )
         );
 
-    GleanedMaturityAge_ = database_->query<int>(DB_MaturityAge);
+    database_->query_into<int>(DB_MaturityAge, GleanedMaturityAge_);
 
     database_->query_into(DB_LedgerType, GleanedLedgerType_);
 }
diff --git a/mec_server.cpp b/mec_server.cpp
index 2d4e6c8..dfdf325 100644
--- a/mec_server.cpp
+++ b/mec_server.cpp
@@ -123,8 +123,7 @@ mec_state test_one_days_7702A_transactions
     round_to<double> const RoundNonMecPrem(2, r_downward);
     round_to<double> const round_max_premium(2, r_downward);
 
-    oenum_modal_prem_type const target_premium_type =
-        database.query<oenum_modal_prem_type>(DB_TgtPremType);
+    auto const target_premium_type = 
database.query<oenum_modal_prem_type>(DB_TgtPremType);
     std::vector<double> TargetPremiumRates(input.years_to_maturity());
     if(oe_modal_table == target_premium_type)
         {



reply via email to

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