From c66fb8e807ddeb3deda683f0bd2c3b0f5237a4f4 Mon Sep 17 00:00:00 2001 From: Neil Groves Date: Thu, 23 Dec 2010 09:59:53 +0000 Subject: [PATCH] [boost][range] - manually split the implementation calls to search_n _impl and search_n_pred_impl due to a function overload resolution issue with VC10. [SVN r67426] --- include/boost/range/algorithm/search_n.hpp | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/include/boost/range/algorithm/search_n.hpp b/include/boost/range/algorithm/search_n.hpp index 0941b1e..ca2b6ef 100755 --- a/include/boost/range/algorithm/search_n.hpp +++ b/include/boost/range/algorithm/search_n.hpp @@ -108,9 +108,9 @@ namespace range_detail template inline ForwardIterator - search_n_impl(ForwardIterator first, ForwardIterator last, - Integer count, const Value& value, - BinaryPredicate pred, std::forward_iterator_tag) + search_n_pred_impl(ForwardIterator first, ForwardIterator last, + Integer count, const Value& value, + BinaryPredicate pred, std::forward_iterator_tag) { typedef typename std::iterator_traits::difference_type difference_t; @@ -143,9 +143,9 @@ namespace range_detail template inline RandomAccessIterator - search_n_impl(RandomAccessIterator first, RandomAccessIterator last, - Integer count, const Value& value, - BinaryPredicate pred, std::random_access_iterator_tag) + search_n_pred_impl(RandomAccessIterator first, RandomAccessIterator last, + Integer count, const Value& value, + BinaryPredicate pred, std::random_access_iterator_tag) { typedef typename std::iterator_traits::difference_type difference_t; @@ -208,9 +208,9 @@ namespace range_detail template inline ForwardIterator - search_n_impl(ForwardIterator first, ForwardIterator last, - Integer count, const Value& value, - BinaryPredicate pred) + search_n_pred_impl(ForwardIterator first, ForwardIterator last, + Integer count, const Value& value, + BinaryPredicate pred) { BOOST_RANGE_CONCEPT_ASSERT((ForwardIteratorConcept)); BOOST_RANGE_CONCEPT_ASSERT(( @@ -230,8 +230,8 @@ namespace range_detail ++first; return first; } - return range_detail::search_n_impl(first, last, count, - value, pred, cat_t()); + return range_detail::search_n_pred_impl(first, last, count, + value, pred, cat_t()); } } // namespace range_detail @@ -271,7 +271,7 @@ search_n(ForwardRange& rng, Integer count, const Value& value, BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, const Value&>)); - return range_detail::search_n_impl(boost::begin(rng), boost::end(rng), + return range_detail::search_n_pred_impl(boost::begin(rng), boost::end(rng), count, value, binary_pred); } @@ -285,7 +285,7 @@ search_n(const ForwardRange& rng, Integer count, const Value& value, BOOST_RANGE_CONCEPT_ASSERT((ForwardRangeConcept)); BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, const Value&>)); - return range_detail::search_n_impl(boost::begin(rng), boost::end(rng), + return range_detail::search_n_pred_impl(boost::begin(rng), boost::end(rng), count, value, binary_pred); } @@ -329,7 +329,8 @@ search_n(ForwardRange& rng, Integer count, const Value& value, BOOST_DEDUCED_TYPENAME range_value::type, const Value&>)); return range_return:: - pack(range_detail::search_n_impl(boost::begin(rng), boost::end(rng), + pack(range_detail::search_n_pred_impl(boost::begin(rng), + boost::end(rng), count, value, pred), rng); } @@ -346,7 +347,8 @@ search_n(const ForwardRange& rng, Integer count, const Value& value, BOOST_DEDUCED_TYPENAME range_value::type, const Value&>)); return range_return:: - pack(range_detail::search_n_impl(boost::begin(rng), boost::end(rng), + pack(range_detail::search_n_pred_impl(boost::begin(rng), + boost::end(rng), count, value, pred), rng); }