Boost.Range fixes for compilers that were having problems picking between const and mutable range overloads of range algorithms.

[SVN r61028]
This commit is contained in:
Neil Groves
2010-04-03 21:00:56 +00:00
parent f8f29ae7d3
commit d0544400af
14 changed files with 54 additions and 380 deletions

View File

@ -7,10 +7,6 @@ template<class SinglePassRange, class Value>
typename range_iterator<SinglePassRange>::type
find(SinglePassRange& rng, Value val);
template<class SinglePassRange, class Value>
typename range_iterator<const SinglePassRange>::type
find(const SinglePassRange& rng, Value val);
template<
range_return_value re,
class SinglePassRange,
@ -18,20 +14,12 @@ template<
>
typename range_return<SinglePassRange, re>::type
find(SinglePassRange& rng, Value val);
template<
range_return_value re,
class SinglePassRange,
class Value
>
typename range_return<const SinglePassRange, re>::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]

View File

@ -7,10 +7,6 @@ template<class ForwardRange1, class ForwardRange2>
typename range_iterator<ForwardRange1>::type
find_end(ForwardRange1& rng1, const ForwardRange2& rng2);
template<class ForwardRange1, class ForwardRange2>
typename range_iterator<const ForwardRange1>::type
find_end(const ForwardRange1& rng1, const ForwardRange2& rng2);
template<
class ForwardRange1,
class ForwardRange2,
@ -19,15 +15,6 @@ template<
typename range_iterator<ForwardRange1>::type
find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);
template<
class ForwardRange1,
class ForwardRange2,
class BinaryPredicate
>
typename range_iterator<const ForwardRange1>::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<ForwardRange1, re>::type
find_end(ForwardRange1& rng1, const ForwardRange2& rng2);
template<
range_return_value re,
class ForwardRange1,
class ForwardRange2
>
typename range_return<const ForwardRange1, re>::type
find_end(const ForwardRange1& rng1, const ForwardRange2& rng2);
template<
range_return_value re,
class ForwardRange1,
@ -52,22 +31,13 @@ template<
>
typename range_return<ForwardRange1, re>::type
find_end(ForwardRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);
template<
range_return_value re,
class ForwardRange1,
class ForwardRange2,
class BinaryPredicate
>
typename range_return<const ForwardRange1, re>::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`

View File

@ -7,10 +7,6 @@ template<class SinglePassRange1, class ForwardRange2>
typename range_iterator<SinglePassRange1>::type
find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2);
template<class SinglePassRange1, class ForwardRange2>
typename range_iterator<const SinglePassRange1>::type
find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2);
template<
class SinglePassRange1,
class ForwardRange2,
@ -19,15 +15,6 @@ template<
typename range_iterator<SinglePassRange1>::type
find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);
template<
class SinglePassRange1,
class ForwardRange2,
class BinaryPredicate
>
typename range_iterator<const SinglePassRange1>::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<SinglePassRange1, re>::type
find_first_of(SinglePassRange1& rng1, const ForwardRange2& rng2);
template<
range_return_value re,
class SinglePassRange1,
class ForwardRange2
>
typename range_return<const SinglePassRange1, re>::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<SinglePassRange1, re>::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<const SinglePassRange1, re>::type
find_first_of(const SinglePassRange1& rng1, const ForwardRange2& rng2, BinaryPredicate pred);
``
[heading Description]

View File

@ -7,10 +7,6 @@ template<class SinglePassRange, class UnaryPredicate>
typename range_iterator<SinglePassRange>::type
find_if(SinglePassRange& rng, UnaryPredicate pred);
template<class SinglePassRange, class UnaryPredicate>
typename range_iterator<const SinglePassRange>::type
find_if(const SinglePassRange& rng, UnaryPredicate pred);
template<
range_return_value re,
class SinglePassRange,
@ -18,14 +14,6 @@ template<
>
typename range_return<SinglePassRange, re>::type
find_if(SinglePassRange& rng, UnaryPredicate pred);
template<
range_return_value re,
class SinglePassRange,
class UnaryPredicate
>
typename range_return<const SinglePassRange, re>::type
find_if(const SinglePassRange& rng, UnaryPredicate pred);
``
[heading Description]

View File

@ -7,10 +7,6 @@ template<class ForwardRange, class Value>
typename range_iterator<ForwardRange>::type
lower_bound(ForwardRange& rng, Value val);
template<class ForwardRange, class Value>
typename range_iterator<const ForwardRange>::type
lower_bound(const ForwardRange& rng, Value val);
template<
range_return_value re,
class ForwardRange,
@ -18,14 +14,6 @@ template<
>
typename range_return<ForwardRange, re>::type
lower_bound(ForwardRange& rng, Value val);
template<
range_return_value re,
class ForwardRange,
class Value
>
typename range_return<const ForwardRange, re>::type
lower_bound(const ForwardRange& rng, Value val);
``
[heading Description]

View File

@ -7,10 +7,6 @@ template<class ForwardRange, class Value>
typename range_iterator<ForwardRange>::type
upper_bound(ForwardRange& rng, Value val);
template<class ForwardRange, class Value>
typename range_iterator<const ForwardRange>::type
upper_bound(const ForwardRange& rng, Value val);
template<
range_return_value re,
class ForwardRange,
@ -18,14 +14,6 @@ template<
>
typename range_return<ForwardRange, re>::type
upper_bound(ForwardRange& rng, Value val);
template<
range_return_value re,
class ForwardRange,
class Value
>
typename range_return<const ForwardRange, re>::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]