diff --git a/doc/reference/algorithm/find.qbk b/doc/reference/algorithm/find.qbk index 50b47c0..38d5507 100644 --- a/doc/reference/algorithm/find.qbk +++ b/doc/reference/algorithm/find.qbk @@ -7,10 +7,6 @@ template typename range_iterator::type find(SinglePassRange& rng, Value val); -template -typename range_iterator::type -find(const SinglePassRange& rng, Value val); - template< range_return_value re, class SinglePassRange, @@ -18,20 +14,12 @@ template< > typename range_return::type find(SinglePassRange& rng, Value val); - -template< - range_return_value re, - class SinglePassRange, - class Value - > -typename range_return::type -find(const SinglePassRange& rng, Value val); `` [heading Description] The versions of `find` that return an iterator, returns the first iterator in the range `rng` such that `*i == value`. `end(rng)` is returned if no such iterator exists. -The versions of find that return a `range_return`, defines `found` in the same manner as the returned iterator described above. +The versions of find that return a `range_return`, defines `found` in the same manner as the returned iterator described above. [heading Definition] diff --git a/doc/reference/algorithm/find_end.qbk b/doc/reference/algorithm/find_end.qbk index 237f21a..a5999ce 100644 --- a/doc/reference/algorithm/find_end.qbk +++ b/doc/reference/algorithm/find_end.qbk @@ -7,10 +7,6 @@ template typename range_iterator::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2); -template -typename range_iterator::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2); - template< class ForwardRange1, class ForwardRange2, @@ -19,15 +15,6 @@ template< typename range_iterator::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); -template< - class ForwardRange1, - class ForwardRange2, - class BinaryPredicate - > -typename range_iterator::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); - - template< range_return_value re, class ForwardRange1, @@ -36,14 +23,6 @@ template< typename range_return::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2); -template< - range_return_value re, - class ForwardRange1, - class ForwardRange2 - > -typename range_return::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2); - template< range_return_value re, class ForwardRange1, @@ -52,22 +31,13 @@ template< > typename range_return::type find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); - -template< - range_return_value re, - class ForwardRange1, - class ForwardRange2, - class BinaryPredicate - > -typename range_return::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); `` [heading Description] The versions of `find_end` that return an iterator, return an iterator to the beginning of the last sub-sequence equal to `rng2` within `rng1`. Equality is determined by `operator==` for non-predicate versions of `find_end`, and by satisfying `pred` in the predicate versions. The versions of `find_end` that return a `range_return`, defines `found` in the same manner as the returned iterator described above. - + [heading Definition] Defined in the header file `boost/range/algorithm/find_end.hpp` diff --git a/doc/reference/algorithm/find_first_of.qbk b/doc/reference/algorithm/find_first_of.qbk index bd8b856..a6af825 100644 --- a/doc/reference/algorithm/find_first_of.qbk +++ b/doc/reference/algorithm/find_first_of.qbk @@ -7,10 +7,6 @@ template typename range_iterator::type find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2); -template -typename range_iterator::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2); - template< class SinglePassRange1, class ForwardRange2, @@ -19,15 +15,6 @@ template< typename range_iterator::type find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); -template< - class SinglePassRange1, - class ForwardRange2, - class BinaryPredicate - > -typename range_iterator::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); - - template< range_return_value re, class SinglePassRange1, @@ -36,14 +23,6 @@ template< typename range_return::type find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2); -template< - range_return_value re, - class SinglePassRange1, - class ForwardRange2 - > -typename range_return::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2); - template< range_return_value re, class SinglePassRange1, @@ -52,15 +31,6 @@ template< > typename range_return::type find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); - -template< - range_return_value re, - class SinglePassRange1, - class ForwardRange2, - class BinaryPredicate - > -typename range_return::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred); `` [heading Description] diff --git a/doc/reference/algorithm/find_if.qbk b/doc/reference/algorithm/find_if.qbk index 81ba4c3..862d8a1 100644 --- a/doc/reference/algorithm/find_if.qbk +++ b/doc/reference/algorithm/find_if.qbk @@ -7,10 +7,6 @@ template typename range_iterator::type find_if(SinglePassRange& rng, UnaryPredicate pred); -template -typename range_iterator::type -find_if(const SinglePassRange& rng, UnaryPredicate pred); - template< range_return_value re, class SinglePassRange, @@ -18,14 +14,6 @@ template< > typename range_return::type find_if(SinglePassRange& rng, UnaryPredicate pred); - -template< - range_return_value re, - class SinglePassRange, - class UnaryPredicate - > -typename range_return::type -find_if(const SinglePassRange& rng, UnaryPredicate pred); `` [heading Description] diff --git a/doc/reference/algorithm/lower_bound.qbk b/doc/reference/algorithm/lower_bound.qbk index 26b5ab1..6228928 100644 --- a/doc/reference/algorithm/lower_bound.qbk +++ b/doc/reference/algorithm/lower_bound.qbk @@ -7,10 +7,6 @@ template typename range_iterator::type lower_bound(ForwardRange& rng, Value val); -template -typename range_iterator::type -lower_bound(const ForwardRange& rng, Value val); - template< range_return_value re, class ForwardRange, @@ -18,14 +14,6 @@ template< > typename range_return::type lower_bound(ForwardRange& rng, Value val); - -template< - range_return_value re, - class ForwardRange, - class Value - > -typename range_return::type -lower_bound(const ForwardRange& rng, Value val); `` [heading Description] diff --git a/doc/reference/algorithm/upper_bound.qbk b/doc/reference/algorithm/upper_bound.qbk index 43ea642..7882410 100644 --- a/doc/reference/algorithm/upper_bound.qbk +++ b/doc/reference/algorithm/upper_bound.qbk @@ -7,10 +7,6 @@ template typename range_iterator::type upper_bound(ForwardRange& rng, Value val); -template -typename range_iterator::type -upper_bound(const ForwardRange& rng, Value val); - template< range_return_value re, class ForwardRange, @@ -18,14 +14,6 @@ template< > typename range_return::type upper_bound(ForwardRange& rng, Value val); - -template< - range_return_value re, - class ForwardRange, - class Value - > -typename range_return::type -upper_bound(const ForwardRange& rng, Value val); `` [heading Description] @@ -36,7 +24,7 @@ with predicate - `pred(val, *i)` is `true`. `end(rng)` is returned if no such iterator exists. -The versions of `upper_bound` that return a `range_return`, defines `found` in the same manner as the returned iterator described above. +The versions of `upper_bound` that return a `range_return`, defines `found` in the same manner as the returned iterator described above. [heading Definition] diff --git a/include/boost/range/algorithm/find.hpp b/include/boost/range/algorithm/find.hpp index d9d5b14..df39efe 100755 --- a/include/boost/range/algorithm/find.hpp +++ b/include/boost/range/algorithm/find.hpp @@ -33,14 +33,6 @@ find( SinglePassRange& rng, const Value& val ) BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); return std::find(boost::begin(rng), boost::end(rng), val); } -/// \overload -template< class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find( const SinglePassRange& rng, const Value& val ) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::find(boost::begin(rng), boost::end(rng), val); -} // range_return overloads @@ -54,16 +46,6 @@ find( SinglePassRange& rng, const Value& val ) pack(std::find(boost::begin(rng), boost::end(rng), val), rng); } -/// \overload -template< range_return_value re, class SinglePassRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -find( const SinglePassRange& rng, const Value& val ) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return range_return:: - pack(std::find(boost::begin(rng), boost::end(rng), val), - rng); -} } // namespace range using range::find; diff --git a/include/boost/range/algorithm/find_end.hpp b/include/boost/range/algorithm/find_end.hpp index aaf4888..5f4fada 100755 --- a/include/boost/range/algorithm/find_end.hpp +++ b/include/boost/range/algorithm/find_end.hpp @@ -30,7 +30,7 @@ namespace boost /// \pre BinaryPredicate is a model of the BinaryPredicateConcept template< class ForwardRange1, class ForwardRange2 > inline BOOST_DEDUCED_TYPENAME range_iterator< ForwardRange1 >::type -find_end(ForwardRange1 & rng1, ForwardRange2 const & rng2) +find_end(ForwardRange1 & rng1, const ForwardRange2& rng2) { BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); @@ -39,23 +39,10 @@ find_end(ForwardRange1 & rng1, ForwardRange2 const & rng2) boost::begin(rng2),boost::end(rng2)); } -/// \overload -template< class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_end(ForwardRange1 const & rng1, ForwardRange2 const & rng2) -{ - - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_end(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - /// \overload template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_end(ForwardRange1 & rng1, ForwardRange2 const & rng2, BinaryPredicate pred) +find_end(ForwardRange1 & rng1, const ForwardRange2& rng2, BinaryPredicate pred) { BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); @@ -64,18 +51,6 @@ find_end(ForwardRange1 & rng1, ForwardRange2 const & rng2, BinaryPredicate pred) boost::begin(rng2),boost::end(rng2),pred); } -/// \overload -template< class ForwardRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_end(ForwardRange1 const & rng1, ForwardRange2 const & rng2, BinaryPredicate pred) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_end(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - /// \overload template< range_return_value re, class ForwardRange1, class ForwardRange2 > inline BOOST_DEDUCED_TYPENAME range_return::type @@ -90,20 +65,6 @@ find_end(ForwardRange1& rng1, const ForwardRange2& rng2) rng1); } -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_end(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)), - rng1); -} - /// \overload template< range_return_value re, class ForwardRange1, class ForwardRange2, class BinaryPredicate > @@ -119,22 +80,6 @@ find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred) rng1); } -/// \overload -template< range_return_value re, class ForwardRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_end(const ForwardRange1& rng1, const ForwardRange2& rng2, - BinaryPredicate pred) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_end(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2), pred), - rng1); -} - } // namespace range using range::find_end; } // namespace boost diff --git a/include/boost/range/algorithm/find_first_of.hpp b/include/boost/range/algorithm/find_first_of.hpp index 3902cd0..4bd304e 100755 --- a/include/boost/range/algorithm/find_first_of.hpp +++ b/include/boost/range/algorithm/find_first_of.hpp @@ -39,18 +39,6 @@ find_first_of(SinglePassRange1 & rng1, ForwardRange2 const & rng2) boost::begin(rng2),boost::end(rng2)); } -/// \overload -template< class SinglePassRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_first_of(SinglePassRange1 const & rng1, ForwardRange2 const & rng2) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_first_of(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2)); -} - /// \overload template< class SinglePassRange1, class ForwardRange2, class BinaryPredicate > inline BOOST_DEDUCED_TYPENAME range_iterator::type @@ -63,19 +51,6 @@ find_first_of(SinglePassRange1 & rng1, ForwardRange2 const & rng2, BinaryPredica boost::begin(rng2),boost::end(rng2),pred); } -/// \overload -template< class SinglePassRange1, class ForwardRange2, class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2, - BinaryPredicate pred) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return std::find_first_of(boost::begin(rng1),boost::end(rng1), - boost::begin(rng2),boost::end(rng2),pred); -} - // range return overloads /// \overload template< range_return_value re, class SinglePassRange1, class ForwardRange2 > @@ -91,20 +66,6 @@ find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2) rng1); } -/// \overload -template< range_return_value re, class SinglePassRange1, class ForwardRange2 > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_first_of(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2)), - rng1); -} - /// \overload template< range_return_value re, class SinglePassRange1, class ForwardRange2, class BinaryPredicate > @@ -121,22 +82,6 @@ find_first_of(SinglePassRange1 & rng1, const ForwardRange2& rng2, rng1); } -/// \overload -template< range_return_value re, class SinglePassRange1, class ForwardRange2, - class BinaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2, - BinaryPredicate pred) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - - return range_return:: - pack(std::find_first_of(boost::begin(rng1), boost::end(rng1), - boost::begin(rng2), boost::end(rng2),pred), - rng1); -} - } // namespace range using range::find_first_of; } // namespace boost diff --git a/include/boost/range/algorithm/find_if.hpp b/include/boost/range/algorithm/find_if.hpp index f36c4e5..1a42e3a 100755 --- a/include/boost/range/algorithm/find_if.hpp +++ b/include/boost/range/algorithm/find_if.hpp @@ -34,14 +34,6 @@ find_if( SinglePassRange& rng, UnaryPredicate pred ) BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); return std::find_if(boost::begin(rng), boost::end(rng), pred); } -/// \overload -template< class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -find_if( const SinglePassRange& rng, UnaryPredicate pred ) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return std::find_if(boost::begin(rng), boost::end(rng), pred); -} // range_return overloads @@ -55,16 +47,6 @@ find_if( SinglePassRange& rng, UnaryPredicate pred ) pack(std::find_if(boost::begin(rng), boost::end(rng), pred), rng); } -/// \overload -template< range_return_value re, class SinglePassRange, class UnaryPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -find_if( const SinglePassRange& rng, UnaryPredicate pred ) -{ - BOOST_CONCEPT_ASSERT(( SinglePassRangeConcept )); - return range_return:: - pack(std::find_if(boost::begin(rng), boost::end(rng), pred), - rng); -} } // namespace range using range::find_if; diff --git a/include/boost/range/algorithm/lower_bound.hpp b/include/boost/range/algorithm/lower_bound.hpp index 682ba36..8a954b3 100755 --- a/include/boost/range/algorithm/lower_bound.hpp +++ b/include/boost/range/algorithm/lower_bound.hpp @@ -34,14 +34,6 @@ lower_bound( ForwardRange& rng, Value val ) return std::lower_bound(boost::begin(rng), boost::end(rng), val); } /// \overload -template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -lower_bound( const ForwardRange& rng, Value val ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::lower_bound(boost::begin(rng), boost::end(rng), val); -} -/// \overload template< class ForwardRange, class Value, class SortPredicate > inline BOOST_DEDUCED_TYPENAME range_iterator::type lower_bound( ForwardRange& rng, Value val, SortPredicate pred ) @@ -50,14 +42,6 @@ lower_bound( ForwardRange& rng, Value val, SortPredicate pred ) return std::lower_bound(boost::begin(rng), boost::end(rng), val, pred); } /// \overload -template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -lower_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::lower_bound(boost::begin(rng), boost::end(rng), val, pred); -} -/// \overload template< range_return_value re, class ForwardRange, class Value > inline BOOST_DEDUCED_TYPENAME range_return::type lower_bound( ForwardRange& rng, Value val ) @@ -68,16 +52,6 @@ lower_bound( ForwardRange& rng, Value val ) rng); } /// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -lower_bound( const ForwardRange& rng, Value val ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::lower_bound(boost::begin(rng), boost::end(rng), val), - rng); -} -/// \overload template< range_return_value re, class ForwardRange, class Value, class SortPredicate > inline BOOST_DEDUCED_TYPENAME range_return::type lower_bound( ForwardRange& rng, Value val, SortPredicate pred ) @@ -87,16 +61,6 @@ lower_bound( ForwardRange& rng, Value val, SortPredicate pred ) pack(std::lower_bound(boost::begin(rng), boost::end(rng), val, pred), rng); } -/// \overload -template< range_return_value re, class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -lower_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::lower_bound(boost::begin(rng), boost::end(rng), val, pred), - rng); -} } // namespace range using range::lower_bound; diff --git a/include/boost/range/algorithm/upper_bound.hpp b/include/boost/range/algorithm/upper_bound.hpp index e11acad..fa755c1 100755 --- a/include/boost/range/algorithm/upper_bound.hpp +++ b/include/boost/range/algorithm/upper_bound.hpp @@ -34,13 +34,6 @@ upper_bound( ForwardRange& rng, Value val ) return std::upper_bound(boost::begin(rng), boost::end(rng), val); } /// \overload -template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -upper_bound( const ForwardRange& rng, Value val ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::upper_bound(boost::begin(rng), boost::end(rng), val); -} /// \overload template< class ForwardRange, class Value, class SortPredicate > inline BOOST_DEDUCED_TYPENAME range_iterator::type @@ -50,14 +43,6 @@ upper_bound( ForwardRange& rng, Value val, SortPredicate pred ) return std::upper_bound(boost::begin(rng), boost::end(rng), val, pred); } /// \overload -template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type -upper_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return std::upper_bound(boost::begin(rng), boost::end(rng), val, pred); -} -/// \overload template< range_return_value re, class ForwardRange, class Value > inline BOOST_DEDUCED_TYPENAME range_return::type upper_bound( ForwardRange& rng, Value val ) @@ -68,16 +53,6 @@ upper_bound( ForwardRange& rng, Value val ) rng); } /// \overload -template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type -upper_bound( const ForwardRange& rng, Value val ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::upper_bound(boost::begin(rng), boost::end(rng), val), - rng); -} -/// \overload template< range_return_value re, class ForwardRange, class Value, class SortPredicate > inline BOOST_DEDUCED_TYPENAME range_return::type @@ -88,17 +63,6 @@ upper_bound( ForwardRange& rng, Value val, SortPredicate pred ) pack(std::upper_bound(boost::begin(rng), boost::end(rng), val, pred), rng); } -/// \overload -template< range_return_value re, class ForwardRange, class Value, - class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type -upper_bound( const ForwardRange& rng, Value val, SortPredicate pred ) -{ - BOOST_CONCEPT_ASSERT(( ForwardRangeConcept )); - return range_return:: - pack(std::upper_bound(boost::begin(rng), boost::end(rng), val, pred), - rng); -} } // namespace range using range::upper_bound; diff --git a/test/algorithm_test/find.cpp b/test/algorithm_test/find.cpp index e0607f0..6b3d532 100644 --- a/test/algorithm_test/find.cpp +++ b/test/algorithm_test/find.cpp @@ -86,6 +86,10 @@ namespace boost test_find_container< const std::vector >(); test_find_container< const std::list >(); test_find_container< const std::deque >(); + + std::vector vi; + const std::vector& cvi = vi; + std::vector::const_iterator it = boost::find(vi, 0); } } } diff --git a/test/sub_range.cpp b/test/sub_range.cpp old mode 100755 new mode 100644 index 7d5bf05..80c942f --- a/test/sub_range.cpp +++ b/test/sub_range.cpp @@ -17,51 +17,48 @@ #endif #include -#include +#include #include #include #include #include -using namespace boost; -using namespace std; - void check_sub_range() { - - typedef string::iterator iterator; - typedef string::const_iterator const_iterator; - typedef iterator_range irange; - typedef iterator_range cirange; - string str = "hello world"; - const string cstr = "const world"; - irange r = make_iterator_range( str ); - r = make_iterator_range( str.begin(), str.end() ); - cirange r2 = make_iterator_range( cstr ); - r2 = make_iterator_range( cstr.begin(), cstr.end() ); - r2 = make_iterator_range( str ); - - typedef sub_range srange; - typedef sub_range csrange; + + typedef std::string::iterator iterator; + typedef std::string::const_iterator const_iterator; + typedef boost::iterator_range irange; + typedef boost::iterator_range cirange; + std::string str = "hello world"; + const std::string cstr = "const world"; + irange r = boost::make_iterator_range( str ); + r = boost::make_iterator_range( str.begin(), str.end() ); + cirange r2 = boost::make_iterator_range( cstr ); + r2 = boost::make_iterator_range( cstr.begin(), cstr.end() ); + r2 = boost::make_iterator_range( str ); + + typedef boost::sub_range srange; + typedef boost::sub_range csrange; srange s = r; BOOST_CHECK( r == r ); BOOST_CHECK( s == r ); - s = make_iterator_range( str ); + s = boost::make_iterator_range( str ); csrange s2 = r; s2 = r2; - s2 = make_iterator_range( cstr ); + s2 = boost::make_iterator_range( cstr ); BOOST_CHECK( r2 == r2 ); BOOST_CHECK( s2 != r2 ); - s2 = make_iterator_range( str ); + s2 = boost::make_iterator_range( str ); BOOST_CHECK( !(s != s) ); - + BOOST_CHECK( r.begin() == s.begin() ); BOOST_CHECK( r2.begin()== s2.begin() ); BOOST_CHECK( r.end() == s.end() ); BOOST_CHECK( r2.end() == s2.end() ); BOOST_CHECK_EQUAL( r.size(), s.size() ); BOOST_CHECK_EQUAL( r2.size(), s2.size() ); - + //#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) // if( !(bool)r ) // BOOST_CHECK( false ); @@ -70,7 +67,7 @@ void check_sub_range() // if( !(bool)s ) // BOOST_CHECK( false ); // if( !(bool)s2 ) -// BOOST_CHECK( false ); +// BOOST_CHECK( false ); //#else if( !r ) BOOST_CHECK( false ); @@ -80,13 +77,13 @@ void check_sub_range() BOOST_CHECK( false ); if( !s2 ) BOOST_CHECK( false ); -//#endif +//#endif + + std::cout << r << r2 << s << s2; + + std::string res = boost::copy_range( r ); + BOOST_CHECK_EQUAL_COLLECTIONS( res.begin(), res.end(), r.begin(), r.end() ); - cout << r << r2 << s << s2; - - string res = copy_range( r ); - BOOST_CHECK( equal( res.begin(), res.end(), r.begin() ) ); - r.empty(); s.empty(); r.size(); @@ -107,44 +104,43 @@ void check_sub_range() //BOOST_CHECK( empty( singular_srange ) ); // - srange rr = make_iterator_range( str ); + srange rr = boost::make_iterator_range( str ); BOOST_CHECK( rr.equal( r ) ); - rr = make_iterator_range( str.begin(), str.begin() + 5 ); - BOOST_CHECK( rr == as_literal("hello") ); - BOOST_CHECK( rr != as_literal("hell") ); - BOOST_CHECK( rr < as_literal("hello dude") ); - BOOST_CHECK( as_literal("hello") == rr ); - BOOST_CHECK( as_literal("hell") != rr ); - BOOST_CHECK( ! (as_literal("hello dude") < rr ) ); - + rr = boost::make_iterator_range( str.begin(), str.begin() + 5 ); + BOOST_CHECK( rr == boost::as_literal("hello") ); + BOOST_CHECK( rr != boost::as_literal("hell") ); + BOOST_CHECK( rr < boost::as_literal("hello dude") ); + BOOST_CHECK( boost::as_literal("hello") == rr ); + BOOST_CHECK( boost::as_literal("hell") != rr ); + BOOST_CHECK( ! (boost::as_literal("hello dude") < rr ) ); + irange rrr = rr; BOOST_CHECK( rrr == rr ); BOOST_CHECK( !( rrr != rr ) ); BOOST_CHECK( !( rrr < rr ) ); - const irange cr = make_iterator_range( str ); + const irange cr = boost::make_iterator_range( str ); BOOST_CHECK_EQUAL( cr.front(), 'h' ); BOOST_CHECK_EQUAL( cr.back(), 'd' ); BOOST_CHECK_EQUAL( cr[1], 'e' ); BOOST_CHECK_EQUAL( cr(1), 'e' ); - rrr = make_iterator_range( str, 1, -1 ); - BOOST_CHECK( rrr == as_literal("ello worl") ); - rrr = make_iterator_range( rrr, -1, 1 ); + rrr = boost::make_iterator_range( str, 1, -1 ); + BOOST_CHECK( rrr == boost::as_literal("ello worl") ); + rrr = boost::make_iterator_range( rrr, -1, 1 ); BOOST_CHECK( rrr == str ); rrr.front() = 'H'; rrr.back() = 'D'; rrr[1] = 'E'; - BOOST_CHECK( rrr == as_literal("HEllo worlD") ); -} + BOOST_CHECK( rrr == boost::as_literal("HEllo worlD") ); +} #include -using boost::unit_test::test_suite; -test_suite* init_unit_test_suite( int argc, char* argv[] ) +boost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] ) { - test_suite* test = BOOST_TEST_SUITE( "Range Test Suite" ); + boost::unit_test::test_suite* test = BOOST_TEST_SUITE( "Range Test Suite" ); test->add( BOOST_TEST_CASE( &check_sub_range ) );