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 ));