forked from boostorg/range
[range] experimental commit using disable_if in an attempt to resolve the ambiguity warnings on some compilers.
[SVN r63938]
This commit is contained in:
@ -27,7 +27,11 @@ namespace boost
|
|||||||
///
|
///
|
||||||
/// \pre ForwardRange is a model of the ForwardRangeConcept
|
/// \pre ForwardRange is a model of the ForwardRangeConcept
|
||||||
template< class ForwardRange, class Value >
|
template< class ForwardRange, class Value >
|
||||||
inline BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type
|
inline
|
||||||
|
BOOST_DEDUCED_TYPENAME disable_if<
|
||||||
|
is_const<ForwardRange>,
|
||||||
|
BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type
|
||||||
|
>::type
|
||||||
upper_bound( ForwardRange& rng, Value val )
|
upper_bound( ForwardRange& rng, Value val )
|
||||||
{
|
{
|
||||||
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
||||||
@ -36,7 +40,7 @@ upper_bound( ForwardRange& rng, Value val )
|
|||||||
|
|
||||||
/// \overload
|
/// \overload
|
||||||
template< class ForwardRange, class Value >
|
template< class ForwardRange, class Value >
|
||||||
inline BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type
|
BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type
|
||||||
upper_bound( const ForwardRange& rng, Value val )
|
upper_bound( const ForwardRange& rng, Value val )
|
||||||
{
|
{
|
||||||
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<const ForwardRange> ));
|
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<const ForwardRange> ));
|
||||||
@ -45,7 +49,10 @@ upper_bound( const ForwardRange& rng, Value val )
|
|||||||
|
|
||||||
/// \overload
|
/// \overload
|
||||||
template< class ForwardRange, class Value, class SortPredicate >
|
template< class ForwardRange, class Value, class SortPredicate >
|
||||||
inline BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type
|
inline BOOST_DEDUCED_TYPENAME disable_if<
|
||||||
|
is_const<ForwardRange>,
|
||||||
|
BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type
|
||||||
|
>::type
|
||||||
upper_bound( ForwardRange& rng, Value val, SortPredicate pred )
|
upper_bound( ForwardRange& rng, Value val, SortPredicate pred )
|
||||||
{
|
{
|
||||||
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
||||||
@ -63,7 +70,10 @@ upper_bound( const ForwardRange& rng, Value val, SortPredicate pred )
|
|||||||
|
|
||||||
/// \overload
|
/// \overload
|
||||||
template< range_return_value re, class ForwardRange, class Value >
|
template< range_return_value re, class ForwardRange, class Value >
|
||||||
inline BOOST_DEDUCED_TYPENAME range_return<ForwardRange,re>::type
|
inline BOOST_DEDUCED_TYPENAME disable_if<
|
||||||
|
is_const<ForwardRange>,
|
||||||
|
BOOST_DEDUCED_TYPENAME range_return<ForwardRange,re>::type
|
||||||
|
>::type
|
||||||
upper_bound( ForwardRange& rng, Value val )
|
upper_bound( ForwardRange& rng, Value val )
|
||||||
{
|
{
|
||||||
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
||||||
@ -86,7 +96,10 @@ upper_bound( const ForwardRange& rng, Value val )
|
|||||||
/// \overload
|
/// \overload
|
||||||
template< range_return_value re, class ForwardRange, class Value,
|
template< range_return_value re, class ForwardRange, class Value,
|
||||||
class SortPredicate >
|
class SortPredicate >
|
||||||
inline BOOST_DEDUCED_TYPENAME range_return<ForwardRange,re>::type
|
inline BOOST_DEDUCED_TYPENAME disable_if<
|
||||||
|
is_const<ForwardRange>,
|
||||||
|
BOOST_DEDUCED_TYPENAME range_return<ForwardRange,re>::type
|
||||||
|
>::type
|
||||||
upper_bound( ForwardRange& rng, Value val, SortPredicate pred )
|
upper_bound( ForwardRange& rng, Value val, SortPredicate pred )
|
||||||
{
|
{
|
||||||
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept<ForwardRange> ));
|
||||||
|
Reference in New Issue
Block a user