[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [4951] Prefer contains() and map_lookup() to std::find()
From: |
Greg Chicares |
Subject: |
[lmi-commits] [4951] Prefer contains() and map_lookup() to std::find() |
Date: |
Fri, 14 May 2010 21:40:34 +0000 |
Revision: 4951
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=4951
Author: chicares
Date: 2010-05-14 21:40:34 +0000 (Fri, 14 May 2010)
Log Message:
-----------
Prefer contains() and map_lookup() to std::find()
Modified Paths:
--------------
lmi/trunk/ChangeLog
lmi/trunk/authenticity_test.cpp
lmi/trunk/census_view.cpp
lmi/trunk/configurable_settings.cpp
lmi/trunk/dbvalue.cpp
lmi/trunk/group_values.cpp
lmi/trunk/icon_monger.cpp
lmi/trunk/ihs_acctval.cpp
lmi/trunk/ihs_avmly.cpp
lmi/trunk/ihs_avsolve.cpp
lmi/trunk/ihs_basicval.cpp
lmi/trunk/ihs_crc_comp.cpp
lmi/trunk/input_harmonization.cpp
lmi/trunk/input_realization.cpp
lmi/trunk/input_sequence.cpp
lmi/trunk/input_xml_io.cpp
lmi/trunk/ledger.cpp
lmi/trunk/ledger_text_formats.cpp
lmi/trunk/ledger_xml_io.cpp
lmi/trunk/ledger_xsl.cpp
lmi/trunk/main_cli.cpp
lmi/trunk/main_wx.cpp
lmi/trunk/mec_input.cpp
lmi/trunk/mec_server.cpp
lmi/trunk/mec_state.cpp
lmi/trunk/product_data.cpp
lmi/trunk/product_names.cpp
lmi/trunk/regex_test.cpp
lmi/trunk/rounding_view_editor.cpp
lmi/trunk/stratified_charges.cpp
lmi/trunk/test_coding_rules.cpp
lmi/trunk/timer_test.cpp
lmi/trunk/wx_utility.cpp
lmi/trunk/xml_serializable.tpp
Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ChangeLog 2010-05-14 21:40:34 UTC (rev 4951)
@@ -25745,3 +25745,51 @@
contains_test.cpp
Support outmoded compilers.
+20100514T1554Z <zeitlin> [706]
+
+ Makefile.am
+Fix defect introduced 20100513T0109Z.
+
+20100514T1957Z <address@hidden> [706]
+
+ contains.hpp
+ contains_test.cpp
+Determine whether a string contains a given character.
+
+20100514T2140Z <address@hidden> [706]
+
+ authenticity_test.cpp
+ census_view.cpp
+ configurable_settings.cpp
+ dbvalue.cpp
+ group_values.cpp
+ icon_monger.cpp
+ ihs_acctval.cpp
+ ihs_avmly.cpp
+ ihs_avsolve.cpp
+ ihs_basicval.cpp
+ ihs_crc_comp.cpp
+ input_harmonization.cpp
+ input_realization.cpp
+ input_sequence.cpp
+ input_xml_io.cpp
+ ledger.cpp
+ ledger_text_formats.cpp
+ ledger_xml_io.cpp
+ ledger_xsl.cpp
+ main_cli.cpp
+ main_wx.cpp
+ mec_input.cpp
+ mec_server.cpp
+ mec_state.cpp
+ product_data.cpp
+ product_names.cpp
+ regex_test.cpp
+ rounding_view_editor.cpp
+ stratified_charges.cpp
+ test_coding_rules.cpp
+ timer_test.cpp
+ wx_utility.cpp
+ xml_serializable.tpp
+Prefer contains() and map_lookup() to std::find().
+
Modified: lmi/trunk/authenticity_test.cpp
===================================================================
--- lmi/trunk/authenticity_test.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/authenticity_test.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -29,6 +29,7 @@
#include "authenticity.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "md5.hpp"
#include "miscellany.hpp"
#include "system_command.hpp"
@@ -308,7 +309,7 @@
catch(std::exception const& e)
{
std::string s(e.what());
- if(std::string::npos != s.find("boost::filesystem::is_directory"))
+ if(contains(s, "boost::filesystem::is_directory"))
{
BOOST_TEST(false);
goto done;
Modified: lmi/trunk/census_view.cpp
===================================================================
--- lmi/trunk/census_view.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/census_view.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -32,6 +32,7 @@
#include "assert_lmi.hpp"
#include "census_document.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "default_view.hpp"
#include "illustration_view.hpp"
#include "illustrator.hpp"
@@ -982,7 +983,7 @@
for(unsigned int j = 0; j < cell_parms().size(); ++j)
{
- if(erasures.end() == std::find(erasures.begin(), erasures.end(), j))
+ if(!contains(erasures, j))
{
expurgated_cell_parms.push_back(cell_parms()[j]);
}
Modified: lmi/trunk/configurable_settings.cpp
===================================================================
--- lmi/trunk/configurable_settings.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/configurable_settings.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -29,6 +29,7 @@
#include "configurable_settings.hpp"
#include "alert.hpp"
+#include "contains.hpp"
#include "data_directory.hpp" // AddDataDir()
#include "handle_exceptions.hpp"
#include "miscellany.hpp"
@@ -42,7 +43,7 @@
#include <xmlwrapp/nodes_view.h>
-#include <algorithm> // std::find()
+#include <algorithm> // std::copy()
#include <iterator>
#include <sstream>
@@ -120,7 +121,7 @@
,"xslt_tab_delimited_filename" // Withdrawn.
};
static std::vector<std::string> const v(a, a + lmi_array_size(a));
- return v.end() != std::find(v.begin(), v.end(), s);
+ return contains(v, s);
}
std::string const& xml_root_name()
@@ -215,10 +216,7 @@
for(cnvi i = elements.begin(); i != elements.end(); ++i)
{
std::string name = i->get_name();
- if
- ( member_names().end()
- != std::find(member_names().begin(), member_names().end(), name)
- )
+ if(contains(member_names(), name))
{
operator[](i->get_name()) = xml_lmi::get_content(*i);
}
Modified: lmi/trunk/dbvalue.cpp
===================================================================
--- lmi/trunk/dbvalue.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/dbvalue.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,6 +30,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "dbnames.hpp"
#include "math_functors.hpp" // greater_of(), lesser_of()
#include "print_matrix.hpp"
@@ -346,26 +347,7 @@
void database_entity::assert_invariants() const
{
- if
- (
- axis_lengths_.end()
- != std::find
- (axis_lengths_.begin()
- ,axis_lengths_.end()
- ,0
- )
- )
- {
- fatal_error()
- << "Database item '"
- << GetDBNames()[key_].ShortName
- << "' with key "
- << key_
- << " has zero in at least one dimension."
- << LMI_FLUSH
- ;
- }
-
+ LMI_ASSERT(!contains(axis_lengths_, 0));
LMI_ASSERT(getndata() == static_cast<int>(data_values_.size()));
LMI_ASSERT
( 0 < static_cast<int>(data_values_.size())
Modified: lmi/trunk/group_values.cpp
===================================================================
--- lmi/trunk/group_values.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/group_values.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,6 +31,7 @@
#include "account_value.hpp"
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "emit_ledger.hpp"
#include "fenv_guard.hpp"
#include "illustrator.hpp" // assert_consistency()
@@ -257,7 +258,7 @@
cell_values.push_back(av);
- if(std::string::npos !=
av->yare_input_.Comments.find("idiosyncrasyZ"))
+ if(contains(av->yare_input_.Comments, "idiosyncrasyZ"))
{
av->Debugging = true;
av->DebugPrintInit();
Modified: lmi/trunk/icon_monger.cpp
===================================================================
--- lmi/trunk/icon_monger.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/icon_monger.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -29,6 +29,7 @@
#include "icon_monger.hpp"
#include "alert.hpp"
+#include "contains.hpp"
#include "data_directory.hpp"
#include "map_lookup.hpp"
#include "path_utility.hpp" // fs::path inserter
@@ -40,19 +41,6 @@
#include <sstream>
-namespace
-{
-// SOMEDAY !! Write a "contains.hpp" header that implements this
-// function for every standard container as well as std::string.
-// Rationale: this usage represents half of our find() calls, and
-// the idiom is verbose.
-template<typename Key, typename Compare, typename Allocator>
-bool contains(std::set<Key,Compare,Allocator> const& c, Key const& k)
-{
- return c.end() != c.find(k);
-}
-} // Unnamed namespace.
-
/// Enumerate lmi icon names; map 'wxART_' id's to icon names.
///
/// The wxART mapping permits the use of simpler gnome-standard names:
Modified: lmi/trunk/ihs_acctval.cpp
===================================================================
--- lmi/trunk/ihs_acctval.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ihs_acctval.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,6 +31,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
#include "calendar_date.hpp"
+#include "contains.hpp"
#include "database.hpp"
#include "dbnames.hpp"
#include "death_benefits.hpp"
@@ -201,7 +202,7 @@
it should also be possible to solve on a midpt basis as well
*/
- if(std::string::npos != yare_input_.Comments.find("idiosyncrasyZ"))
+ if(contains(yare_input_.Comments, "idiosyncrasyZ"))
{
Debugging = true;
DebugPrintInit();
@@ -210,7 +211,7 @@
double z = RunAllApplicableBases();
FinalizeLifeAllBases();
- if(std::string::npos != yare_input_.Comments.find("idiosyncrasy_spew"))
+ if(contains(yare_input_.Comments, "idiosyncrasy_spew"))
{
std::ofstream os("raw_output", ios_out_trunc_binary());
ledger_->Spew(os);
@@ -559,10 +560,10 @@
,bfts_7702a
);
- daily_interest_accounting =
- std::string::npos
- != yare_input_.Comments.find("idiosyncrasy_daily_interest_accounting")
- ;
+ daily_interest_accounting = contains
+ (yare_input_.Comments
+ ,"idiosyncrasy_daily_interest_accounting"
+ );
/* TODO expunge?
PerformSpecAmtStrategy();
Modified: lmi/trunk/ihs_avmly.cpp
===================================================================
--- lmi/trunk/ihs_avmly.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ihs_avmly.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,6 +30,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "database.hpp"
#include "dbnames.hpp"
#include "death_benefits.hpp"
@@ -1713,7 +1714,7 @@
if
( force_eoy_behavior
- || std::string::npos != yare_input_.Comments.find("idiosyncrasyV")
+ || contains(yare_input_.Comments, "idiosyncrasyV")
)
{
// The corridor death benefit ought always to reflect the
Modified: lmi/trunk/ihs_avsolve.cpp
===================================================================
--- lmi/trunk/ihs_avsolve.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ihs_avsolve.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -37,6 +37,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "death_benefits.hpp"
#include "ledger_invariant.hpp"
#include "ledger_variant.hpp"
@@ -406,7 +407,7 @@
std::ostream os_trace(status().rdbuf());
std::ofstream ofs_trace;
- if(std::string::npos != yare_input_.Comments.find("idiosyncrasyT") &&
!SolvingForGuarPremium)
+ if(contains(yare_input_.Comments, "idiosyncrasyT") &&
!SolvingForGuarPremium)
{
ofs_trace.open("trace.txt", ios_out_app_binary());
os_trace.rdbuf(ofs_trace.rdbuf());
Modified: lmi/trunk/ihs_basicval.cpp
===================================================================
--- lmi/trunk/ihs_basicval.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ihs_basicval.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -33,6 +33,7 @@
#include "assert_lmi.hpp"
#include "calendar_date.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "data_directory.hpp"
#include "database.hpp"
#include "death_benefits.hpp"
@@ -467,7 +468,7 @@
,MlyDcvqc.begin()
,round_coi_rate()
);
- if(std::string::npos != yare_input_.Comments.find("idiosyncrasy_dcvq"))
+ if(contains(yare_input_.Comments, "idiosyncrasy_dcvq"))
{
std::ostringstream oss;
oss
@@ -765,7 +766,7 @@
Database_->Query(FreeWDProportion, DB_FreeWDProportion);
Database_->Query(DBDiscountRate, DB_NAARDiscount);
- LMI_ASSERT(DBDiscountRate.end() == std::find(DBDiscountRate.begin(),
DBDiscountRate.end(), -1.0));
+ LMI_ASSERT(!contains(DBDiscountRate, -1.0));
// This would be more natural:
// assign(DBDiscountRate, 1.0 / (1.0 + DBDiscountRate));
// but we avoid it for the nonce because it causes slight regression errors.
Modified: lmi/trunk/ihs_crc_comp.cpp
===================================================================
--- lmi/trunk/ihs_crc_comp.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ihs_crc_comp.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -24,6 +24,7 @@
// Sample command line to compile:
// /gcc-2.95.2-1/bin/g++ -Iming29521 ihs_crc_comp.cpp
+#include "contains.hpp"
#include "main_common.hpp"
#include "miscellany.hpp"
#include "value_cast.hpp"
@@ -159,11 +160,11 @@
{
return final;
}
- else if(std::string::npos != line.find("\t"))
+ else if(contains(line, "\t"))
{
return crc;
}
- else if(std::string::npos != line.find("=="))
+ else if(contains(line, "=="))
{
return scalar;
}
@@ -175,13 +176,7 @@
{
return yearly;
}
- else if
- (get_special_type_3_not_2().end() != std::find
- (get_special_type_3_not_2().begin()
- ,get_special_type_3_not_2().end()
- ,line
- )
- )
+ else if(contains(get_special_type_3_not_2(), line))
{
return yearly;
}
@@ -237,7 +232,7 @@
if
( line1 != line2
// TODO ?? Fix this kludge, which strives to ignore fund names.
- && std::string::npos != line1.find(" ")
+ && contains(line1, " ")
)
{
return;
Modified: lmi/trunk/input_harmonization.cpp
===================================================================
--- lmi/trunk/input_harmonization.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/input_harmonization.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,6 +31,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
#include "calendar_date.hpp"
+#include "contains.hpp"
#include "database.hpp"
#include "dbnames.hpp"
#include "global_settings.hpp"
@@ -304,7 +305,7 @@
InforceContractMonth .enable(non_mec);
InforceLeastDeathBenefit.enable(non_mec);
- if(std::string::npos !=
global_settings::instance().pyx().find("old_inforce"))
+ if(contains(global_settings::instance().pyx(), "old_inforce"))
{
// These fields have no effect for now. They're suppressed to
// avoid confusion.
@@ -988,7 +989,7 @@
DoHarmonize();
}
- if(std::string::npos !=
global_settings::instance().pyx().find("old_inforce"))
+ if(contains(global_settings::instance().pyx(), "old_inforce"))
{
InforceAsOfDate = add_years_and_months
(EffectiveDate.value()
Modified: lmi/trunk/input_realization.cpp
===================================================================
--- lmi/trunk/input_realization.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/input_realization.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,6 +30,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "database.hpp"
#include "dbnames.hpp"
#include "global_settings.hpp"
@@ -621,11 +622,7 @@
if
( !database_->Query(DB_AllowDBO3)
- && DeathBenefitOptionRealized_.end() != std::find
- (DeathBenefitOptionRealized_.begin()
- ,DeathBenefitOptionRealized_.end()
- ,mce_dbopt("ROP")
- )
+ && contains(DeathBenefitOptionRealized_, mce_dbopt("ROP"))
)
{
return
Modified: lmi/trunk/input_sequence.cpp
===================================================================
--- lmi/trunk/input_sequence.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/input_sequence.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,6 +30,7 @@
#include "input_sequence.hpp"
#include "alert.hpp"
+#include "contains.hpp"
#include "miscellany.hpp"
#include "value_cast.hpp"
@@ -713,12 +714,7 @@
mark_diagnostic_context();
break;
}
- std::vector<std::string>::const_iterator i = std::find
- (extra_keywords.begin()
- ,extra_keywords.end()
- ,current_keyword
- );
- if(i != extra_keywords.end())
+ if(contains(extra_keywords, current_keyword))
{
current_interval.value_keyword = current_keyword;
match(current_token_type);
Modified: lmi/trunk/input_xml_io.cpp
===================================================================
--- lmi/trunk/input_xml_io.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/input_xml_io.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,10 +31,11 @@
#include "alert.hpp"
#include "calendar_date.hpp"
+#include "contains.hpp"
#include "global_settings.hpp"
#include "miscellany.hpp" // lmi_array_size()
-#include <algorithm> // std::find(), std::min()
+#include <algorithm> // std::min()
#include <stdexcept>
template class xml_serializable<Input>;
@@ -113,7 +114,7 @@
,"YearsOfZeroDeaths" // Withdrawn.
};
static std::vector<std::string> const v(a, a + lmi_array_size(a));
- return v.end() != std::find(v.begin(), v.end(), s);
+ return contains(v, s);
}
void Input::redintegrate_ex_ante
@@ -286,13 +287,7 @@
// An older version with no distinct 'file_version' didn't
// have 'DefinitionOfMaterialChange', whose default value is
// unacceptable for GPT.
- if
- (residuary_names.end() != std::find
- (residuary_names.begin()
- ,residuary_names.end()
- ,std::string("DefinitionOfMaterialChange")
- )
- )
+ if(contains(residuary_names, "DefinitionOfMaterialChange"))
{
DefinitionOfMaterialChange =
mce_gpt == DefinitionOfLifeInsurance
@@ -317,13 +312,7 @@
{
// 'UseCurrentDeclaredRate' was introduced 20071017T1454Z; its
// default value of "Yes" would break backward compatibility.
- if
- (residuary_names.end() != std::find
- (residuary_names.begin()
- ,residuary_names.end()
- ,std::string("UseCurrentDeclaredRate")
- )
- )
+ if(contains(residuary_names, "UseCurrentDeclaredRate"))
{
UseCurrentDeclaredRate = "No";
}
Modified: lmi/trunk/ledger.cpp
===================================================================
--- lmi/trunk/ledger.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ledger.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -406,12 +406,7 @@
//============================================================================
LedgerVariant const& Ledger::GetOneVariantLedger(mcenum_run_basis b) const
{
- ledger_map_t::const_iterator i(GetLedgerMap().held().find(b));
- if(i == GetLedgerMap().held().end())
- {
- fatal_error() << "No values for basis '" << mc_str(b) << "'" <<
LMI_FLUSH;
- }
- return i->second;
+ return map_lookup(GetLedgerMap().held(), b);
}
//============================================================================
Modified: lmi/trunk/ledger_text_formats.cpp
===================================================================
--- lmi/trunk/ledger_text_formats.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ledger_text_formats.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -34,6 +34,7 @@
#include "calendar_date.hpp"
#include "comma_punct.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "financial.hpp"
#include "global_settings.hpp"
#include "input_sequence.hpp"
@@ -190,10 +191,10 @@
// TODO ?? This const_cast is safe, but it's still unclean.
LedgerInvariant& unclean = const_cast<LedgerInvariant&>(invar_);
bool want_any_irr =
- columns_.end() != std::find(columns_.begin(), columns_.end(),
"IrrCsv_Current" )
- || columns_.end() != std::find(columns_.begin(), columns_.end(),
"IrrCsv_Guaranteed")
- || columns_.end() != std::find(columns_.begin(), columns_.end(),
"IrrDb_Current" )
- || columns_.end() != std::find(columns_.begin(), columns_.end(),
"IrrDb_Guaranteed" )
+ contains(columns_, "IrrCsv_Current" )
+ || contains(columns_, "IrrCsv_Guaranteed")
+ || contains(columns_, "IrrDb_Current" )
+ || contains(columns_, "IrrDb_Guaranteed" )
;
if(want_any_irr && !invar_.IsInforce)
{
@@ -648,10 +649,7 @@
// Show experience-rating columns for current-expense, zero-
// interest basis if used, to support testing.
std::vector<mcenum_run_basis> const&
bases(ledger_values.GetRunBases());
- if
- ( bases.end()
- != std::find(bases.begin(), bases.end(),
mce_run_gen_curr_sep_zero)
- )
+ if(contains(bases, mce_run_gen_curr_sep_zero))
{
LedgerVariant const& Curr0 = ledger_values.GetCurrZero();
os << Curr0.value_str("NetCOICharge" ,j) << '\t';
@@ -669,10 +667,7 @@
os << "0\t";
}
- if
- ( bases.end()
- != std::find(bases.begin(), bases.end(),
mce_run_gen_curr_sep_half)
- )
+ if(contains(bases, mce_run_gen_curr_sep_half))
{
fatal_error()
<< "Three-rate illustrations not supported."
Modified: lmi/trunk/ledger_xml_io.cpp
===================================================================
--- lmi/trunk/ledger_xml_io.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ledger_xml_io.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -28,6 +28,7 @@
#include "calendar_date.hpp"
#include "comma_punct.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "global_settings.hpp"
#include "handle_exceptions.hpp"
#include "ledger_base.hpp"
@@ -151,7 +152,7 @@
,format_map_t const& m
)
{
- if(m.end() != m.find(s))
+ if(contains(m, s))
{
return true;
}
@@ -938,7 +939,7 @@
if
( GetIsComposite()
- && std::string::npos !=
ledger_invariant_->Comments.find("idiosyncrasy_spreadsheet")
+ && contains(ledger_invariant_->Comments, "idiosyncrasy_spreadsheet")
)
{
configurable_settings const& z = configurable_settings::instance();
Modified: lmi/trunk/ledger_xsl.cpp
===================================================================
--- lmi/trunk/ledger_xsl.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/ledger_xsl.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,6 +30,7 @@
#include "alert.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "global_settings.hpp"
#include "ledger.hpp"
#include "miscellany.hpp"
@@ -107,7 +108,7 @@
fs::path real_filepath(orthodox_filename(filepath.leaf()));
LMI_ASSERT(fs::portable_name(real_filepath.string()));
- if(std::string::npos != global_settings::instance().pyx().find("xml"))
+ if(contains(global_settings::instance().pyx(), "xml"))
{
fs::path xml_file = unique_filepath(print_dir / real_filepath, ".xml");
Modified: lmi/trunk/main_cli.cpp
===================================================================
--- lmi/trunk/main_cli.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/main_cli.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -28,6 +28,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "dbdict.hpp" // print_databases()
#include "getopt.hpp"
#include "global_settings.hpp"
@@ -455,7 +456,7 @@
case 'x':
{
global_settings::instance().set_pyx(getopt_long.optarg);
- if(std::string::npos !=
global_settings::instance().pyx().find("system_testing"))
+ if(contains(global_settings::instance().pyx(),
"system_testing"))
{
global_settings::instance().set_regression_testing(true);
}
Modified: lmi/trunk/main_wx.cpp
===================================================================
--- lmi/trunk/main_wx.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/main_wx.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -45,6 +45,7 @@
#include "census_document.hpp"
#include "census_view.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "data_directory.hpp"
#include "database_document.hpp"
#include "database_view.hpp"
@@ -1246,7 +1247,7 @@
case 'x':
{
global_settings::instance().set_pyx(getopt_long.optarg);
- if(std::string::npos !=
global_settings::instance().pyx().find("system_testing"))
+ if(contains(global_settings::instance().pyx(),
"system_testing"))
{
global_settings::instance().set_regression_testing(true);
}
Modified: lmi/trunk/mec_input.cpp
===================================================================
--- lmi/trunk/mec_input.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/mec_input.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,13 +30,14 @@
#include "xml_serializable.tpp"
#include "alert.hpp"
+#include "contains.hpp"
#include "database.hpp"
#include "dbnames.hpp"
#include "global_settings.hpp"
#include "input_seq_helpers.hpp"
#include "miscellany.hpp" // lmi_array_size()
-#include <algorithm> // std::find(), std::max()
+#include <algorithm> // std::max()
#include <limits>
#include <sstream>
#include <utility> // std::pair
@@ -624,7 +625,7 @@
,"InforceSevenPayPremium"
};
static std::vector<std::string> const v(a, a + lmi_array_size(a));
- return v.end() != std::find(v.begin(), v.end(), s);
+ return contains(v, s);
}
void mec_input::redintegrate_ad_terminum()
Modified: lmi/trunk/mec_server.cpp
===================================================================
--- lmi/trunk/mec_server.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/mec_server.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -34,6 +34,7 @@
#include "basic_values.hpp" // lowest_premium_tax_load()
#include "commutation_functions.hpp"
#include "configurable_settings.hpp"
+#include "contains.hpp"
#include "data_directory.hpp"
#include "database.hpp"
#include "dbnames.hpp"
@@ -194,7 +195,7 @@
std::vector<double> Mly7702ig;
database.Query(Mly7702ig, DB_NAARDiscount);
- LMI_ASSERT(Mly7702ig.end() == std::find(Mly7702ig.begin(),
Mly7702ig.end(), -1.0));
+ LMI_ASSERT(!contains(Mly7702ig, -1.0));
std::vector<double> DBDiscountRate(input.years_to_maturity());
assign(DBDiscountRate, 1.0 / (1.0 + Mly7702ig));
Modified: lmi/trunk/mec_state.cpp
===================================================================
--- lmi/trunk/mec_state.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/mec_state.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,13 +30,13 @@
#include "xml_serializable.tpp"
#include "alert.hpp"
+#include "contains.hpp"
#include "miscellany.hpp" // htmlize(), lmi_array_size()
#include "value_cast.hpp"
#include "xml_lmi.hpp"
#include <boost/filesystem/fstream.hpp>
-#include <algorithm> // std::find()
#include <limits>
#include <sstream>
#include <vector>
@@ -403,6 +403,6 @@
{"Remove this string when adding the first removed entity."
};
static std::vector<std::string> const v(a, a + lmi_array_size(a));
- return v.end() != std::find(v.begin(), v.end(), s);
+ return contains(v, s);
}
Modified: lmi/trunk/product_data.cpp
===================================================================
--- lmi/trunk/product_data.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/product_data.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,6 +31,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "data_directory.hpp" // AddDataDir()
#include "miscellany.hpp" // lmi_array_size()
#include "xml_serialize.hpp"
@@ -38,7 +39,6 @@
#include <boost/filesystem/convenience.hpp>
#include <boost/filesystem/path.hpp>
-#include <algorithm> // std::find()
#include <vector>
template class xml_serializable<product_data>;
@@ -321,7 +321,7 @@
{"Remove this string when adding the first removed entity."
};
static std::vector<std::string> const v(a, a + lmi_array_size(a));
- return v.end() != std::find(v.begin(), v.end(), s);
+ return contains(v, s);
}
/// Create a product file for the 'sample' product.
Modified: lmi/trunk/product_names.cpp
===================================================================
--- lmi/trunk/product_names.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/product_names.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -24,6 +24,7 @@
#include "product_names.hpp"
#include "alert.hpp"
+#include "contains.hpp"
#include "global_settings.hpp"
#include "miscellany.hpp"
#include "path_utility.hpp" // fs::path inserter
@@ -81,9 +82,7 @@
std::string const& default_product_name()
{
static std::string const default_name =
- ( product_names().end()
- != std::find(product_names().begin(), product_names().end(), "sample")
- )
+ contains(product_names(), "sample")
? std::string("sample")
: product_names().front()
;
Modified: lmi/trunk/regex_test.cpp
===================================================================
--- lmi/trunk/regex_test.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/regex_test.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -26,6 +26,7 @@
# pragma hdrstop
#endif
+#include "contains.hpp"
#include "test_tools.hpp"
#include "timer.hpp"
@@ -104,7 +105,7 @@
bool contains_regex0(std::string const& regex)
{
- return std::string::npos != text.find(regex);
+ return contains(text, regex);
}
/// Match a regex line by line.
Modified: lmi/trunk/rounding_view_editor.cpp
===================================================================
--- lmi/trunk/rounding_view_editor.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/rounding_view_editor.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -24,6 +24,7 @@
#include "rounding_view_editor.hpp"
#include "alert.hpp"
+#include "map_lookup.hpp"
#include "wx_new.hpp"
#include <wx/bitmap.h>
@@ -35,6 +36,7 @@
#include <wx/window.h>
#include <map>
+#include <ostream>
#include <sstream>
#include <utility>
@@ -108,20 +110,23 @@
return bitmaps;
}
+/// Streaming operator to support map_lookup().
+
+std::ostream& operator<<
+ (std::ostream& os
+ ,std::pair<rounding_style,enum_bitmap_button_state> const& b
+ )
+{
+ return os << "style " << b.first << " state " << b.second;
+}
+
// return the bitmap corrsponding to the 'button' in the 'state'
wxBitmap const& get_button_bitmap
(rounding_style button
,enum_bitmap_button_state state
)
{
- button_bitmaps const& bitmaps = all_button_bitmaps();
- button_bitmaps::const_iterator it =
- bitmaps.find(std::make_pair(button, state));
- if(it == bitmaps.end())
- {
- fatal_error() << "Unknown or missing button bitmap" << LMI_FLUSH;
- }
- return it->second;
+ return map_lookup(all_button_bitmaps(), std::make_pair(button, state));
}
void style_button(wxBitmapButton& button, rounding_style style, bool selected)
Modified: lmi/trunk/stratified_charges.cpp
===================================================================
--- lmi/trunk/stratified_charges.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/stratified_charges.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,6 +31,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
#include "data_directory.hpp"
+#include "map_lookup.hpp"
#include "miscellany.hpp" // minmax<T>()
#include "platform_dependent.hpp" // access()
#include "stratified_algorithms.hpp"
@@ -167,13 +168,16 @@
//============================================================================
stratified_entity& stratified_charges::raw_entity(e_stratified e)
{
- return (*dictionary.find(e)).second;
+ typedef std::map<e_stratified, stratified_entity>::iterator mi;
+ mi i = dictionary.find(e);
+ LMI_ASSERT(dictionary.end() != i);
+ return i->second;
}
//============================================================================
stratified_entity const& stratified_charges::raw_entity(e_stratified e) const
{
- return (*dictionary.find(e)).second;
+ return map_lookup(dictionary, e);
}
//============================================================================
Modified: lmi/trunk/test_coding_rules.cpp
===================================================================
--- lmi/trunk/test_coding_rules.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/test_coding_rules.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -27,6 +27,7 @@
#endif // __BORLANDC__
#include "assert_lmi.hpp"
+#include "contains.hpp"
#include "handle_exceptions.hpp"
#include "istream_to_string.hpp"
#include "main_common.hpp"
@@ -313,8 +314,8 @@
void assay_whitespace(file const& f)
{
if
- ( std::string::npos != f.data().find('\r')
- || std::string::npos != f.data().find('\v')
+ ( contains(f.data(), '\r')
+ || contains(f.data(), '\v')
)
{
throw std::runtime_error("File contains '\\r' or '\\v'.");
@@ -323,7 +324,7 @@
if
( !f.is_of_phylum(e_gpl)
&& !f.is_of_phylum(e_touchstone)
- && std::string::npos != f.data().find('\f')
+ && contains(f.data(), '\f')
)
{
throw std::runtime_error("File contains '\\f'.");
@@ -333,7 +334,7 @@
( !f.is_of_phylum(e_gpl)
&& !f.is_of_phylum(e_make)
&& !f.is_of_phylum(e_patch)
- && std::string::npos != f.data().find('\t')
+ && contains(f.data(), '\t')
)
{
throw std::runtime_error("File contains '\\t'.");
@@ -348,7 +349,7 @@
if
( !f.is_of_phylum(e_gpl)
&& !f.is_of_phylum(e_touchstone)
- && std::string::npos != f.data().find("\n\n\n")
+ && contains(f.data(), "\n\n\n")
)
{
complain(f, "contains '\\n\\n\\n'.");
@@ -356,7 +357,7 @@
if
( !f.is_of_phylum(e_patch)
- && std::string::npos != f.data().find(" \n")
+ && contains(f.data(), " \n")
)
{
complain(f, "contains ' \\n'.");
@@ -803,7 +804,7 @@
};
static int const n = lmi_array_size(y);
static std::set<std::string> const z(y, y + n);
- return z.end() != z.find(s);
+ return contains(z, s);
}
/// Check names reserved by C++2003 [17.4.3.1.2].
Modified: lmi/trunk/timer_test.cpp
===================================================================
--- lmi/trunk/timer_test.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/timer_test.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -28,6 +28,7 @@
#include "timer.hpp"
+#include "contains.hpp"
#include "test_tools.hpp"
#if !defined __BORLANDC__
@@ -158,7 +159,7 @@
#endif // !defined __BORLANDC__
std::string takes_too_long = TimeAnAliquot(WaitTenMsec, 0.0099999).str();
- BOOST_TEST(std::string::npos != takes_too_long.find("took longer"));
+ BOOST_TEST(contains(takes_too_long, "took longer"));
std::cout << " " << takes_too_long << '\n';
std::cout << " " << TimeAnAliquot(WaitTenMsec, 0.099) << '\n';
Modified: lmi/trunk/wx_utility.cpp
===================================================================
--- lmi/trunk/wx_utility.cpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/wx_utility.cpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -31,6 +31,7 @@
#include "alert.hpp"
#include "assert_lmi.hpp"
#include "calendar_date.hpp"
+#include "contains.hpp"
#include "wx_new.hpp"
#include <wx/app.h> // wxTheApp
@@ -41,7 +42,6 @@
#include <wx/utils.h> // wxSafeYield()
#include <wx/window.h>
-#include <algorithm> // std::find()
#include <cstddef> // std::size_t
#include <sstream>
@@ -216,7 +216,7 @@
for(std::size_t j = 0; j < book.GetPageCount(); ++j)
{
std::string name(book.GetPageText(j));
- LMI_ASSERT(z.end() == std::find(z.begin(), z.end(), name));
+ LMI_ASSERT(!contains(z, name));
z.push_back(name);
}
return z;
Modified: lmi/trunk/xml_serializable.tpp
===================================================================
--- lmi/trunk/xml_serializable.tpp 2010-05-14 19:57:00 UTC (rev 4950)
+++ lmi/trunk/xml_serializable.tpp 2010-05-14 21:40:34 UTC (rev 4951)
@@ -30,6 +30,7 @@
#include "alert.hpp"
#include "any_member.hpp" // MemberSymbolTable<>
+#include "contains.hpp"
#include "platform_dependent.hpp" // access()
#include "value_cast.hpp"
#include "xml_lmi.hpp"
@@ -290,7 +291,7 @@
{"Remove this string when adding the first removed entity."
};
static std::vector<std::string> const v(a, a + lmi_array_size(a));
- return v.end() != std::find(v.begin(), v.end(), s);
+ return contains(v, s);
#endif // 0
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [4951] Prefer contains() and map_lookup() to std::find(),
Greg Chicares <=