forked from boostorg/range
Boost.Range merge of bug fixes and documentation
[SVN r64120]
This commit is contained in:
@ -27,18 +27,33 @@ namespace boost
|
||||
///
|
||||
/// \pre SinglePassRange is a model of the SinglePassRangeConcept
|
||||
template< class SinglePassRange, class Value >
|
||||
inline BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type
|
||||
inline BOOST_DEDUCED_TYPENAME disable_if<
|
||||
is_const<SinglePassRange>,
|
||||
BOOST_DEDUCED_TYPENAME range_iterator<SinglePassRange>::type
|
||||
>::type
|
||||
find( SinglePassRange& rng, const Value& val )
|
||||
{
|
||||
BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<SinglePassRange> ));
|
||||
return std::find(boost::begin(rng), boost::end(rng), val);
|
||||
}
|
||||
|
||||
/// \overload
|
||||
template< class SinglePassRange, class Value >
|
||||
inline BOOST_DEDUCED_TYPENAME range_iterator<const SinglePassRange>::type
|
||||
find( const SinglePassRange& rng, const Value& val )
|
||||
{
|
||||
BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> ));
|
||||
return std::find(boost::begin(rng), boost::end(rng), val);
|
||||
}
|
||||
|
||||
// range_return overloads
|
||||
|
||||
/// \overload
|
||||
template< range_return_value re, class SinglePassRange, class Value >
|
||||
inline BOOST_DEDUCED_TYPENAME range_return<SinglePassRange,re>::type
|
||||
inline BOOST_DEDUCED_TYPENAME disable_if<
|
||||
is_const<SinglePassRange>,
|
||||
BOOST_DEDUCED_TYPENAME range_return<SinglePassRange,re>::type
|
||||
>::type
|
||||
find( SinglePassRange& rng, const Value& val )
|
||||
{
|
||||
BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<SinglePassRange> ));
|
||||
@ -47,6 +62,17 @@ find( SinglePassRange& rng, const Value& val )
|
||||
rng);
|
||||
}
|
||||
|
||||
/// \overload
|
||||
template< range_return_value re, class SinglePassRange, class Value >
|
||||
inline BOOST_DEDUCED_TYPENAME range_return<const SinglePassRange,re>::type
|
||||
find( const SinglePassRange& rng, const Value& val )
|
||||
{
|
||||
BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> ));
|
||||
return range_return<const SinglePassRange,re>::
|
||||
pack(std::find(boost::begin(rng), boost::end(rng), val),
|
||||
rng);
|
||||
}
|
||||
|
||||
} // namespace range
|
||||
using range::find;
|
||||
}
|
||||
|
Reference in New Issue
Block a user