lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [4950] Determine whether a string contains a given charact


From: Greg Chicares
Subject: [lmi-commits] [4950] Determine whether a string contains a given character
Date: Fri, 14 May 2010 19:57:01 +0000

Revision: 4950
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=4950
Author:   chicares
Date:     2010-05-14 19:57:00 +0000 (Fri, 14 May 2010)
Log Message:
-----------
Determine whether a string contains a given character

Modified Paths:
--------------
    lmi/trunk/contains.hpp
    lmi/trunk/contains_test.cpp

Modified: lmi/trunk/contains.hpp
===================================================================
--- lmi/trunk/contains.hpp      2010-05-14 15:54:18 UTC (rev 4949)
+++ lmi/trunk/contains.hpp      2010-05-14 19:57:00 UTC (rev 4950)
@@ -123,6 +123,21 @@
 
 /// Ascertain whether a "container" includes a given element.
 ///
+/// If T has 'traits_type::char_type', assume it behaves like 
std::basic_string.
+///
+/// This overload is for std::basic_string::find(traits_type::char_type).
+
+template<typename T>
+bool contains
+    (T const& t
+    ,typename T::traits_type::char_type element
+    )
+{
+    return T::npos != t.find(element);
+}
+
+/// Ascertain whether a "container" includes a given element.
+///
 /// If T has 'key_type', assume it behaves like an associative container.
 
 template<typename T>
@@ -149,6 +164,11 @@
     return std::string::npos != t.find(element);
 }
 
+bool contains(std::string const& t, char element)
+{
+    return std::string::npos != t.find(element);
+}
+
 // Associative containers.
 
 template<typename K, typename T>

Modified: lmi/trunk/contains_test.cpp
===================================================================
--- lmi/trunk/contains_test.cpp 2010-05-14 15:54:18 UTC (rev 4949)
+++ lmi/trunk/contains_test.cpp 2010-05-14 19:57:00 UTC (rev 4950)
@@ -79,6 +79,8 @@
     BOOST_TEST(!contains(w, x));
     BOOST_TEST( contains(w, "eta"));
     BOOST_TEST(!contains(w, "zeta"));
+    BOOST_TEST( contains(w, 'e'));
+    BOOST_TEST(!contains(w, 'q'));
 
     // Associative containers.
 




reply via email to

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