From 7c3b66d5201da2cbe5beb8c0c595ec96ea06c0b0 Mon Sep 17 00:00:00 2001 From: Neil Groves Date: Mon, 12 Jul 2010 22:45:30 +0000 Subject: [PATCH] [range] experimental commit using disable_if in an attempt to resolve the ambiguity warnings on some compilers. [SVN r63938] --- include/boost/range/algorithm/upper_bound.hpp | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/include/boost/range/algorithm/upper_bound.hpp b/include/boost/range/algorithm/upper_bound.hpp index 510127f..c8acbc6 100755 --- a/include/boost/range/algorithm/upper_bound.hpp +++ b/include/boost/range/algorithm/upper_bound.hpp @@ -27,7 +27,11 @@ namespace boost /// /// \pre ForwardRange is a model of the ForwardRangeConcept template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type +inline +BOOST_DEDUCED_TYPENAME disable_if< + is_const, + BOOST_DEDUCED_TYPENAME range_iterator::type +>::type upper_bound( ForwardRange& rng, Value val ) { BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); @@ -36,7 +40,7 @@ upper_bound( ForwardRange& rng, Value val ) /// \overload template< class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_iterator::type +BOOST_DEDUCED_TYPENAME range_iterator::type upper_bound( const ForwardRange& rng, Value val ) { BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); @@ -45,7 +49,10 @@ upper_bound( const ForwardRange& rng, Value val ) /// \overload template< class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_iterator::type +inline BOOST_DEDUCED_TYPENAME disable_if< + is_const, + BOOST_DEDUCED_TYPENAME range_iterator::type +>::type upper_bound( ForwardRange& rng, Value val, SortPredicate pred ) { BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); @@ -63,7 +70,10 @@ upper_bound( const ForwardRange& rng, Value val, SortPredicate pred ) /// \overload template< range_return_value re, class ForwardRange, class Value > -inline BOOST_DEDUCED_TYPENAME range_return::type +inline BOOST_DEDUCED_TYPENAME disable_if< + is_const, + BOOST_DEDUCED_TYPENAME range_return::type +>::type upper_bound( ForwardRange& rng, Value val ) { BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept )); @@ -86,7 +96,10 @@ upper_bound( const ForwardRange& rng, Value val ) /// \overload template< range_return_value re, class ForwardRange, class Value, class SortPredicate > -inline BOOST_DEDUCED_TYPENAME range_return::type +inline BOOST_DEDUCED_TYPENAME disable_if< + is_const, + BOOST_DEDUCED_TYPENAME range_return::type +>::type upper_bound( ForwardRange& rng, Value val, SortPredicate pred ) { BOOST_RANGE_CONCEPT_ASSERT(( ForwardRangeConcept ));