#ifndef boost_compatibility_algorithm_hpp #define boost_compatibility_algorithm_hpp #include #if ! defined( BOOST_NO_IS_SORTED ) #include #endif namespace boost { #if defined( BOOST_NO_IS_SORTED ) template bool is_sorted(ForwardIterator begin, ForwardIterator end) { if (begin == end) return true; ForwardIterator next = begin ; ++next ; for ( ; next != end; ++begin , ++next) { if (*next < *begin) return false; } return true; } template bool is_sorted(ForwardIterator begin, ForwardIterator end, StrictWeakOrdering comp) { if (begin == end) return true; ForwardIterator next = begin ; ++next ; for ( ; next != end ; ++begin, ++next) { if ( comp(*next, *first) ) return false; } return true; } #else template inline bool is_sorted(ForwardIterator begin, ForwardIterator end) { return std::is_sorted( begin, end ) ; } template inline bool is_sorted(ForwardIterator begin, ForwardIterator end, StrictWeakOrdering comp) { return std::is_sorted( begin, end, comp ) ; } #endif // NO_IS_SORTED } // namespace boost #endif // boost_compatibility_algorithm_hpp