lmi-commits
[Top][All Lists]
Advanced

[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
 }
 




reply via email to

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