diff options
Diffstat (limited to 'boost/algorithm/find_not.hpp')
-rw-r--r-- | boost/algorithm/find_not.hpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/boost/algorithm/find_not.hpp b/boost/algorithm/find_not.hpp new file mode 100644 index 0000000000..ef4df00b84 --- /dev/null +++ b/boost/algorithm/find_not.hpp @@ -0,0 +1,39 @@ +/* + Copyright (c) T. Zachary Laine 2018. + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) +*/ +#ifndef BOOST_ALGORITHM_FIND_NOT_HPP +#define BOOST_ALGORITHM_FIND_NOT_HPP + +#include <boost/config.hpp> +#include <boost/range/begin.hpp> +#include <boost/range/end.hpp> + +#include <utility> + + +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 |