From 367582d0f414ba7098081c69b8b86428905f6f2f Mon Sep 17 00:00:00 2001 From: Bryce Adelstein-Lelbach Date: Fri, 14 Jan 2011 03:02:47 +0000 Subject: [PATCH] Removed the use of __gnu_cxx::is_sorted from Boost.Graph as it's lolnonportable, implemented a version of the algorithm as a replacement, [SVN r68144] --- .../boost/range/algorithm_ext/is_sorted.hpp | 42 +++++++------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/include/boost/range/algorithm_ext/is_sorted.hpp b/include/boost/range/algorithm_ext/is_sorted.hpp index 54fc038..3d1273a 100755 --- a/include/boost/range/algorithm_ext/is_sorted.hpp +++ b/include/boost/range/algorithm_ext/is_sorted.hpp @@ -1,3 +1,4 @@ +// Copyright Bryce Lelbach 2010 // Copyright Neil Groves 2009. Use, modification and // distribution is subject to the Boost Software License, Version // 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -14,45 +15,26 @@ #include #include #include +#include #include namespace boost { - namespace range_detail - { - template - inline bool is_sorted(ForwardIterator first, ForwardIterator last) - { - for (ForwardIterator next = first; first != last && ++next != last; ++first) - if (*next < *first) - return false; - return true; - } - - template - inline bool is_sorted(ForwardIterator first, ForwardIterator last, BinaryPredicate pred) - { - for (ForwardIterator next = first; first != last && ++next != last; ++first) - if (pred(*next, *first)) - return false; - return true; - } - } - namespace range { -/// \brief template function count +/// \brief template function is_sorted /// -/// range-based version of the count std algorithm +/// range-based version of the is_sorted std algorithm /// /// \pre SinglePassRange is a model of the SinglePassRangeConcept template inline bool is_sorted(const SinglePassRange& rng) { BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((LessThanComparableConcept::type>)); - return range_detail::is_sorted(boost::begin(rng), boost::end(rng)); + BOOST_RANGE_CONCEPT_ASSERT((LessThanComparableConcept::type>)); + return boost::detail::is_sorted(boost::begin(rng), boost::end(rng)); } /// \overload @@ -60,12 +42,16 @@ template inline bool is_sorted(const SinglePassRange& rng, BinaryPredicate pred) { BOOST_RANGE_CONCEPT_ASSERT((SinglePassRangeConcept)); - BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, BOOST_DEDUCED_TYPENAME range_value::type>)); - return range_detail::is_sorted(boost::begin(rng), boost::end(rng), pred); + BOOST_RANGE_CONCEPT_ASSERT((BinaryPredicateConcept::type, + BOOST_DEDUCED_TYPENAME range_value::type>)); + return boost::detail::is_sorted(boost::begin(rng), boost::end(rng), pred); } } // namespace range - using range::is_sorted; + +using range::is_sorted; + } // namespace boost #endif // include guard