[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)
{
- [lmi-commits] [lmi] master updated (8580716 -> 259f97c), Greg Chicares, 2018/11/07
- [lmi-commits] [lmi] master 61c1056 2/6: Demonstrate effect of redundantly specifying deduced template parameter, Greg Chicares, 2018/11/07
- [lmi-commits] [lmi] master 5b4e08d 4/6: Remove redundant template arguments, Greg Chicares, 2018/11/07
- [lmi-commits] [lmi] master 937ceba 3/6: Strengthen type checking,
Greg Chicares <=
- [lmi-commits] [lmi] master 4b2a5d7 5/6: Use query_into() wherever it fits, Greg Chicares, 2018/11/07
- [lmi-commits] [lmi] master 8667743 1/6: Replace ...cast<T>(...Query(...)) with ...Query<T>(...), Greg Chicares, 2018/11/07
- [lmi-commits] [lmi] master 259f97c 6/6: Use query<bool> with DB_Allow* and DB_TermIsNotRider, Greg Chicares, 2018/11/07