mirror of
https://github.com/yuzu-emu/ext-boost.git
synced 2025-01-07 06:25:39 +00:00
56 lines
1.4 KiB
C++
56 lines
1.4 KiB
C++
|
#ifndef BOOST_MOVE_DETAIL_IS_SORTED_HPP
|
||
|
#define BOOST_MOVE_DETAIL_IS_SORTED_HPP
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// (C) Copyright Ion Gaztanaga 2017-2018. Distributed under the Boost
|
||
|
// Software License, Version 1.0. (See accompanying file
|
||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||
|
//
|
||
|
// See http://www.boost.org/libs/container for documentation.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#ifndef BOOST_CONFIG_HPP
|
||
|
# include <boost/config.hpp>
|
||
|
#endif
|
||
|
|
||
|
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
||
|
# pragma once
|
||
|
#endif
|
||
|
|
||
|
namespace boost {
|
||
|
namespace movelib {
|
||
|
|
||
|
template<class ForwardIt, class Pred>
|
||
|
bool is_sorted(ForwardIt const first, ForwardIt last, Pred pred)
|
||
|
{
|
||
|
if (first != last) {
|
||
|
ForwardIt next = first, cur(first);
|
||
|
while (++next != last) {
|
||
|
if (pred(*next, *cur))
|
||
|
return false;
|
||
|
cur = next;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
template<class ForwardIt, class Pred>
|
||
|
bool is_sorted_and_unique(ForwardIt first, ForwardIt last, Pred pred)
|
||
|
{
|
||
|
if (first != last) {
|
||
|
ForwardIt next = first;
|
||
|
while (++next != last) {
|
||
|
if (!pred(*first, *next))
|
||
|
return false;
|
||
|
first = next;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
} //namespace movelib {
|
||
|
} //namespace boost {
|
||
|
|
||
|
#endif //BOOST_MOVE_DETAIL_IS_SORTED_HPP
|