/* 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