[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 702c4cdd 4/8: Follow the Rule of Zero (initia
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 702c4cdd 4/8: Follow the Rule of Zero (initializing all data members in class) |
Date: |
Sun, 10 Jul 2022 20:41:30 -0400 (EDT) |
branch: master
commit 702c4cdddc15d3506666e684886aa8d9da622a5f
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Follow the Rule of Zero (initializing all data members in class)
Identified by clang's '-Wdeprecated-copy-with-dtor'.
Initialized all data members in the class definition: it's a good idea
in general, and without this change, 'antediluvian_stubs.cpp' would have
needed to duplicate the initializations, more verbosely.
---
product_data.hpp | 393 +++++++++++++++++++++++++++----------------------------
1 file changed, 196 insertions(+), 197 deletions(-)
diff --git a/product_data.hpp b/product_data.hpp
index 106ebd7e..0294af0d 100644
--- a/product_data.hpp
+++ b/product_data.hpp
@@ -50,7 +50,6 @@ class glossed_string final
(std::string const& datum
,std::string const& gloss = std::string()
);
- ~glossed_string() = default;
glossed_string& operator=(std::string const&);
@@ -144,116 +143,116 @@ class LMI_SO product_data
) override;
// Names of files that contain other product data.
- glossed_string DatabaseFilename;
- glossed_string FundFilename;
- glossed_string LingoFilename;
- glossed_string RoundingFilename;
- glossed_string TierFilename;
+ glossed_string DatabaseFilename {};
+ glossed_string FundFilename {};
+ glossed_string LingoFilename {};
+ glossed_string RoundingFilename {};
+ glossed_string TierFilename {};
// Names of rate-table files.
- glossed_string CvatCorridorFilename;
- glossed_string Irc7702NspFilename;
- glossed_string CurrCOIFilename;
- glossed_string GuarCOIFilename;
- glossed_string WPFilename;
- glossed_string ADDFilename;
- glossed_string ChildRiderFilename;
- glossed_string CurrSpouseRiderFilename;
- glossed_string GuarSpouseRiderFilename;
- glossed_string CurrTermFilename;
- glossed_string GuarTermFilename;
- glossed_string GroupProxyFilename;
- glossed_string SevenPayFilename;
- glossed_string MinPremFilename;
- glossed_string TgtPremFilename;
- glossed_string Irc7702QFilename;
- glossed_string PartialMortalityFilename;
- glossed_string SubstdTblMultFilename;
- glossed_string CurrSpecAmtLoadFilename;
- glossed_string GuarSpecAmtLoadFilename;
+ glossed_string CvatCorridorFilename {};
+ glossed_string Irc7702NspFilename {};
+ glossed_string CurrCOIFilename {};
+ glossed_string GuarCOIFilename {};
+ glossed_string WPFilename {};
+ glossed_string ADDFilename {};
+ glossed_string ChildRiderFilename {};
+ glossed_string CurrSpouseRiderFilename {};
+ glossed_string GuarSpouseRiderFilename {};
+ glossed_string CurrTermFilename {};
+ glossed_string GuarTermFilename {};
+ glossed_string GroupProxyFilename {};
+ glossed_string SevenPayFilename {};
+ glossed_string MinPremFilename {};
+ glossed_string TgtPremFilename {};
+ glossed_string Irc7702QFilename {};
+ glossed_string PartialMortalityFilename {};
+ glossed_string SubstdTblMultFilename {};
+ glossed_string CurrSpecAmtLoadFilename {};
+ glossed_string GuarSpecAmtLoadFilename {};
// Essential strings describing the policy and company.
- glossed_string PolicyMktgName;
- glossed_string PolicyLegalName;
- glossed_string InsCoShortName;
- glossed_string InsCoName;
- glossed_string InsCoAddr;
- glossed_string InsCoStreet;
- glossed_string InsCoPhone;
- glossed_string InsCoDomicile;
- glossed_string MainUnderwriter;
- glossed_string MainUnderwriterAddress;
- glossed_string CoUnderwriter;
- glossed_string CoUnderwriterAddress;
+ glossed_string PolicyMktgName {};
+ glossed_string PolicyLegalName {};
+ glossed_string InsCoShortName {};
+ glossed_string InsCoName {};
+ glossed_string InsCoAddr {};
+ glossed_string InsCoStreet {};
+ glossed_string InsCoPhone {};
+ glossed_string InsCoDomicile {};
+ glossed_string MainUnderwriter {};
+ glossed_string MainUnderwriterAddress {};
+ glossed_string CoUnderwriter {};
+ glossed_string CoUnderwriterAddress {};
// Terms defined in the contract, which must be used for column
// headers, footnotes, etc. according to the illustration reg.
- glossed_string AvName;
- glossed_string CsvName;
- glossed_string CsvHeaderName;
- glossed_string NoLapseProvisionName;
- glossed_string ContractName;
- glossed_string DboName;
- glossed_string DboNameLevel;
- glossed_string DboNameIncreasing;
- glossed_string DboNameReturnOfPremium;
- glossed_string DboNameMinDeathBenefit;
- glossed_string GenAcctName;
- glossed_string GenAcctNameElaborated;
- glossed_string SepAcctName;
- glossed_string SpecAmtName;
- glossed_string SpecAmtNameElaborated;
+ glossed_string AvName {};
+ glossed_string CsvName {};
+ glossed_string CsvHeaderName {};
+ glossed_string NoLapseProvisionName {};
+ glossed_string ContractName {};
+ glossed_string DboName {};
+ glossed_string DboNameLevel {};
+ glossed_string DboNameIncreasing {};
+ glossed_string DboNameReturnOfPremium {};
+ glossed_string DboNameMinDeathBenefit {};
+ glossed_string GenAcctName {};
+ glossed_string GenAcctNameElaborated {};
+ glossed_string SepAcctName {};
+ glossed_string SpecAmtName {};
+ glossed_string SpecAmtNameElaborated {};
// Underwriting terms.
- glossed_string UwBasisMedical;
- glossed_string UwBasisParamedical;
- glossed_string UwBasisNonmedical;
- glossed_string UwBasisSimplified;
- glossed_string UwBasisGuaranteed;
- glossed_string UwClassPreferred;
- glossed_string UwClassStandard;
- glossed_string UwClassRated;
- glossed_string UwClassUltra;
+ glossed_string UwBasisMedical {};
+ glossed_string UwBasisParamedical {};
+ glossed_string UwBasisNonmedical {};
+ glossed_string UwBasisSimplified {};
+ glossed_string UwBasisGuaranteed {};
+ glossed_string UwClassPreferred {};
+ glossed_string UwClassStandard {};
+ glossed_string UwClassRated {};
+ glossed_string UwClassUltra {};
// Ledger column definitions.
- glossed_string AccountValueFootnote;
- glossed_string AttainedAgeFootnote;
- glossed_string CashSurrValueFootnote;
- glossed_string DeathBenefitFootnote;
- glossed_string InitialPremiumFootnote;
- glossed_string NetPremiumFootnote;
- glossed_string GrossPremiumFootnote;
- glossed_string OutlayFootnote;
- glossed_string PolicyYearFootnote;
+ glossed_string AccountValueFootnote {};
+ glossed_string AttainedAgeFootnote {};
+ glossed_string CashSurrValueFootnote {};
+ glossed_string DeathBenefitFootnote {};
+ glossed_string InitialPremiumFootnote {};
+ glossed_string NetPremiumFootnote {};
+ glossed_string GrossPremiumFootnote {};
+ glossed_string OutlayFootnote {};
+ glossed_string PolicyYearFootnote {};
// Terse rider names.
- glossed_string ADDTerseName;
- glossed_string InsurabilityTerseName;
- glossed_string ChildTerseName;
- glossed_string SpouseTerseName;
- glossed_string TermTerseName;
- glossed_string WaiverTerseName;
- glossed_string AccelBftRiderTerseName;
- glossed_string OverloanRiderTerseName;
+ glossed_string ADDTerseName {};
+ glossed_string InsurabilityTerseName {};
+ glossed_string ChildTerseName {};
+ glossed_string SpouseTerseName {};
+ glossed_string TermTerseName {};
+ glossed_string WaiverTerseName {};
+ glossed_string AccelBftRiderTerseName {};
+ glossed_string OverloanRiderTerseName {};
// Rider footnotes.
- glossed_string ADDFootnote;
- glossed_string ChildFootnote;
- glossed_string SpouseFootnote;
- glossed_string TermFootnote;
- glossed_string WaiverFootnote;
- glossed_string AccelBftRiderFootnote;
- glossed_string OverloanRiderFootnote;
+ glossed_string ADDFootnote {};
+ glossed_string ChildFootnote {};
+ glossed_string SpouseFootnote {};
+ glossed_string TermFootnote {};
+ glossed_string WaiverFootnote {};
+ glossed_string AccelBftRiderFootnote {};
+ glossed_string OverloanRiderFootnote {};
// Group quotes.
- glossed_string GroupQuoteShortProductName;
- glossed_string GroupQuoteIsNotAnOffer;
- glossed_string GroupQuoteRidersFooter;
- glossed_string GroupQuotePolicyFormId;
- glossed_string GroupQuoteStateVariations;
- glossed_string GroupQuoteProspectus;
- glossed_string GroupQuoteUnderwriter;
- glossed_string GroupQuoteBrokerDealer;
+ glossed_string GroupQuoteShortProductName {};
+ glossed_string GroupQuoteIsNotAnOffer {};
+ glossed_string GroupQuoteRidersFooter {};
+ glossed_string GroupQuotePolicyFormId {};
+ glossed_string GroupQuoteStateVariations {};
+ glossed_string GroupQuoteProspectus {};
+ glossed_string GroupQuoteUnderwriter {};
+ glossed_string GroupQuoteBrokerDealer {};
// Group plan type is one of:
// -Mandatory: no individual selection of amounts; typically,
// the employer pays the entire premium
@@ -262,113 +261,113 @@ class LMI_SO product_data
// when it complements a (separate) "mandatory" plan
// -Fusion: mandatory and supplemental combined; typically, the
// employer and employee pay their respective premiums
- glossed_string GroupQuoteRubricMandatory;
- glossed_string GroupQuoteRubricVoluntary;
- glossed_string GroupQuoteRubricFusion;
- glossed_string GroupQuoteFooterMandatory;
- glossed_string GroupQuoteFooterVoluntary;
- glossed_string GroupQuoteFooterFusion;
+ glossed_string GroupQuoteRubricMandatory {};
+ glossed_string GroupQuoteRubricVoluntary {};
+ glossed_string GroupQuoteRubricFusion {};
+ glossed_string GroupQuoteFooterMandatory {};
+ glossed_string GroupQuoteFooterVoluntary {};
+ glossed_string GroupQuoteFooterFusion {};
// Premium-specific footnotes.
- glossed_string MinimumPremiumFootnote;
- glossed_string PremAllocationFootnote;
+ glossed_string MinimumPremiumFootnote {};
+ glossed_string PremAllocationFootnote {};
// Miscellaneous other footnotes.
- glossed_string InterestDisclaimer;
- glossed_string GuarMortalityFootnote;
- glossed_string ProductDescription;
- glossed_string StableValueFootnote;
- glossed_string NoVanishPremiumFootnote;
- glossed_string RejectPremiumFootnote;
- glossed_string ExpRatingFootnote;
- glossed_string MortalityBlendFootnote;
- glossed_string HypotheticalRatesFootnote;
- glossed_string SalesLoadRefundFootnote;
- glossed_string NoLapseEverFootnote;
- glossed_string NoLapseFootnote;
- glossed_string CurrentValuesFootnote;
- glossed_string DBOption1Footnote;
- glossed_string DBOption2Footnote;
- glossed_string DBOption3Footnote;
- glossed_string MinDeathBenefitFootnote;
- glossed_string ExpRatRiskChargeFootnote;
- glossed_string ExchangeChargeFootnote1;
- glossed_string FlexiblePremiumFootnote;
- glossed_string GuaranteedValuesFootnote;
- glossed_string CreditingRateFootnote;
- glossed_string GrossRateFootnote;
- glossed_string NetRateFootnote;
- glossed_string MecFootnote;
- glossed_string GptFootnote;
- glossed_string MidpointValuesFootnote;
- glossed_string SinglePremiumFootnote;
- glossed_string MonthlyChargesFootnote;
- glossed_string UltCreditingRateFootnote;
- glossed_string UltCreditingRateHeader;
- glossed_string MaxNaarFootnote;
- glossed_string PremTaxSurrChgFootnote;
- glossed_string PolicyFeeFootnote;
- glossed_string AssetChargeFootnote;
- glossed_string InvestmentIncomeFootnote;
- glossed_string IrrDbFootnote;
- glossed_string IrrCsvFootnote;
- glossed_string MortalityChargesFootnote;
- glossed_string LoanAndWithdrawalFootnote;
- glossed_string LoanFootnote;
- glossed_string ImprimaturPresale;
- glossed_string ImprimaturPresaleComposite;
- glossed_string ImprimaturInforce;
- glossed_string ImprimaturInforceComposite;
- glossed_string StateMarketingImprimatur;
- glossed_string NonGuaranteedFootnote;
- glossed_string NonGuaranteedFootnote1;
- glossed_string NonGuaranteedFootnote1Tx;
- glossed_string FnMonthlyDeductions;
- glossed_string SurrenderFootnote;
- glossed_string PortabilityFootnote;
- glossed_string FundRateFootnote;
- glossed_string IssuingCompanyFootnote;
- glossed_string SubsidiaryFootnote;
- glossed_string PlacementAgentFootnote;
- glossed_string MarketingNameFootnote;
- glossed_string GuarIssueDisclaimerNcSc;
- glossed_string GuarIssueDisclaimerMd;
- glossed_string GuarIssueDisclaimerTx;
- glossed_string IllRegCertAgent;
- glossed_string IllRegCertAgentIl;
- glossed_string IllRegCertAgentTx;
- glossed_string IllRegCertClient;
- glossed_string IllRegCertClientIl;
- glossed_string IllRegCertClientTx;
- glossed_string FnMaturityAge;
- glossed_string FnPartialMortality;
- glossed_string FnProspectus;
- glossed_string FnInitialSpecAmt;
- glossed_string FnInforceAcctVal;
- glossed_string FnInforceTaxBasis;
- glossed_string Fn1035Charge;
- glossed_string FnMecExtraWarning;
- glossed_string FnNotTaxAdvice;
- glossed_string FnNotTaxAdvice2;
- glossed_string FnImf;
- glossed_string FnCensus;
- glossed_string FnDacTax;
- glossed_string FnDefnLifeIns;
- glossed_string FnBoyEoy;
- glossed_string FnGeneralAccount;
- glossed_string FnPpMemorandum;
- glossed_string FnPpAccreditedInvestor;
- glossed_string FnPpLoads;
- glossed_string FnProposalUnderwriting;
- glossed_string FnGuaranteedPremium;
- glossed_string FnOmnibusDisclaimer;
- glossed_string FnInitialDbo;
- glossed_string DefnGuarGenAcctRate;
- glossed_string DefnAV;
- glossed_string DefnCSV;
- glossed_string DefnMec;
- glossed_string DefnOutlay;
- glossed_string DefnSpecAmt;
+ glossed_string InterestDisclaimer {};
+ glossed_string GuarMortalityFootnote {};
+ glossed_string ProductDescription {};
+ glossed_string StableValueFootnote {};
+ glossed_string NoVanishPremiumFootnote {};
+ glossed_string RejectPremiumFootnote {};
+ glossed_string ExpRatingFootnote {};
+ glossed_string MortalityBlendFootnote {};
+ glossed_string HypotheticalRatesFootnote {};
+ glossed_string SalesLoadRefundFootnote {};
+ glossed_string NoLapseEverFootnote {};
+ glossed_string NoLapseFootnote {};
+ glossed_string CurrentValuesFootnote {};
+ glossed_string DBOption1Footnote {};
+ glossed_string DBOption2Footnote {};
+ glossed_string DBOption3Footnote {};
+ glossed_string MinDeathBenefitFootnote {};
+ glossed_string ExpRatRiskChargeFootnote {};
+ glossed_string ExchangeChargeFootnote1 {};
+ glossed_string FlexiblePremiumFootnote {};
+ glossed_string GuaranteedValuesFootnote {};
+ glossed_string CreditingRateFootnote {};
+ glossed_string GrossRateFootnote {};
+ glossed_string NetRateFootnote {};
+ glossed_string MecFootnote {};
+ glossed_string GptFootnote {};
+ glossed_string MidpointValuesFootnote {};
+ glossed_string SinglePremiumFootnote {};
+ glossed_string MonthlyChargesFootnote {};
+ glossed_string UltCreditingRateFootnote {};
+ glossed_string UltCreditingRateHeader {};
+ glossed_string MaxNaarFootnote {};
+ glossed_string PremTaxSurrChgFootnote {};
+ glossed_string PolicyFeeFootnote {};
+ glossed_string AssetChargeFootnote {};
+ glossed_string InvestmentIncomeFootnote {};
+ glossed_string IrrDbFootnote {};
+ glossed_string IrrCsvFootnote {};
+ glossed_string MortalityChargesFootnote {};
+ glossed_string LoanAndWithdrawalFootnote {};
+ glossed_string LoanFootnote {};
+ glossed_string ImprimaturPresale {};
+ glossed_string ImprimaturPresaleComposite {};
+ glossed_string ImprimaturInforce {};
+ glossed_string ImprimaturInforceComposite {};
+ glossed_string StateMarketingImprimatur {};
+ glossed_string NonGuaranteedFootnote {};
+ glossed_string NonGuaranteedFootnote1 {};
+ glossed_string NonGuaranteedFootnote1Tx {};
+ glossed_string FnMonthlyDeductions {};
+ glossed_string SurrenderFootnote {};
+ glossed_string PortabilityFootnote {};
+ glossed_string FundRateFootnote {};
+ glossed_string IssuingCompanyFootnote {};
+ glossed_string SubsidiaryFootnote {};
+ glossed_string PlacementAgentFootnote {};
+ glossed_string MarketingNameFootnote {};
+ glossed_string GuarIssueDisclaimerNcSc {};
+ glossed_string GuarIssueDisclaimerMd {};
+ glossed_string GuarIssueDisclaimerTx {};
+ glossed_string IllRegCertAgent {};
+ glossed_string IllRegCertAgentIl {};
+ glossed_string IllRegCertAgentTx {};
+ glossed_string IllRegCertClient {};
+ glossed_string IllRegCertClientIl {};
+ glossed_string IllRegCertClientTx {};
+ glossed_string FnMaturityAge {};
+ glossed_string FnPartialMortality {};
+ glossed_string FnProspectus {};
+ glossed_string FnInitialSpecAmt {};
+ glossed_string FnInforceAcctVal {};
+ glossed_string FnInforceTaxBasis {};
+ glossed_string Fn1035Charge {};
+ glossed_string FnMecExtraWarning {};
+ glossed_string FnNotTaxAdvice {};
+ glossed_string FnNotTaxAdvice2 {};
+ glossed_string FnImf {};
+ glossed_string FnCensus {};
+ glossed_string FnDacTax {};
+ glossed_string FnDefnLifeIns {};
+ glossed_string FnBoyEoy {};
+ glossed_string FnGeneralAccount {};
+ glossed_string FnPpMemorandum {};
+ glossed_string FnPpAccreditedInvestor {};
+ glossed_string FnPpLoads {};
+ glossed_string FnProposalUnderwriting {};
+ glossed_string FnGuaranteedPremium {};
+ glossed_string FnOmnibusDisclaimer {};
+ glossed_string FnInitialDbo {};
+ glossed_string DefnGuarGenAcctRate {};
+ glossed_string DefnAV {};
+ glossed_string DefnCSV {};
+ glossed_string DefnMec {};
+ glossed_string DefnOutlay {};
+ glossed_string DefnSpecAmt {};
};
LMI_SO std::string filename_from_product_name(std::string const&);
- [lmi-commits] [lmi] master updated (2d6a27f6 -> 6a59da54), Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master 9d52b331 1/8: Correct a comment, Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master a5d06b78 6/8: Enable clang's '-Wdeprecated-copy-with-dtor', Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master 6a59da54 8/8: When in doubt, prefer the Rule of Five to the Rule of Zero, Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master 601db178 2/8: Follow the Rule of Zero, Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master 4d052024 5/8: Follow the Rule of Five, Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master 7d05361b 3/8: Follow the Rule of Zero, even expunging a virtual dtor, Greg Chicares, 2022/07/10
- [lmi-commits] [lmi] master 702c4cdd 4/8: Follow the Rule of Zero (initializing all data members in class),
Greg Chicares <=
- [lmi-commits] [lmi] master cb417264 7/8: Remove an antediluvian stub that has become unnecessary, Greg Chicares, 2022/07/10