39 lines
986 B
C++
39 lines
986 B
C++
|
/*
|
||
|
Copyright (c) T. Zachary Laine 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)
|
||
|
*/
|
||
|
#ifndef BOOST_ALGORITHM_FIND_NOT_HPP
|
||
|
#define BOOST_ALGORITHM_FIND_NOT_HPP
|
||
|
|
||
|
#include <utility>
|
||
|
|
||
|
#include <boost/config.hpp>
|
||
|
#include <boost/range/begin.hpp>
|
||
|
#include <boost/range/end.hpp>
|
||
|
|
||
|
namespace boost { namespace algorithm {
|
||
|
|
||
|
template<typename InputIter, typename Sentinel, typename T>
|
||
|
BOOST_CXX14_CONSTEXPR
|
||
|
InputIter find_not(InputIter first, Sentinel last, const T & x)
|
||
|
{
|
||
|
for (; first != last; ++first) {
|
||
|
if (*first != x)
|
||
|
break;
|
||
|
}
|
||
|
return first;
|
||
|
}
|
||
|
|
||
|
template<typename Range, typename T>
|
||
|
BOOST_CXX14_CONSTEXPR
|
||
|
typename boost::range_iterator<Range>::type find_not(Range & r, const T & x)
|
||
|
{
|
||
|
return ::boost::algorithm::find_not(boost::begin(r), boost::end(r), x);
|
||
|
}
|
||
|
|
||
|
}} // namespace boost and algorithm
|
||
|
|
||
|
#endif // BOOST_ALGORITHM_FIND_NOT_HPP
|