Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/algorithm/cxx14/mismatch.hpp @ 102:f46d142149f5
Whoops, finish that update
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:13:41 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line source
/* Copyright (c) Marshall Clow 2008-2012. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) */ /// \file mismatch.hpp /// \brief Find the first mismatched element in a sequence /// \author Marshall Clow #ifndef BOOST_ALGORITHM_MISMATCH_HPP #define BOOST_ALGORITHM_MISMATCH_HPP #include <algorithm> // for std::mismatch #include <utility> // for std::pair namespace boost { namespace algorithm { /// \fn mismatch ( InputIterator1 first1, InputIterator1 last1, /// InputIterator2 first2, InputIterator2 last2, /// BinaryPredicate pred ) /// \return a pair of iterators pointing to the first elements in the sequence that do not match /// /// \param first1 The start of the first range. /// \param last1 One past the end of the first range. /// \param first2 The start of the second range. /// \param last2 One past the end of the second range. /// \param pred A predicate for comparing the elements of the ranges template <class InputIterator1, class InputIterator2, class BinaryPredicate> std::pair<InputIterator1, InputIterator2> mismatch ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred ) { for (; first1 != last1 && first2 != last2; ++first1, ++first2) if ( !pred ( *first1, *first2 )) break; return std::pair<InputIterator1, InputIterator2>(first1, first2); } /// \fn mismatch ( InputIterator1 first1, InputIterator1 last1, /// InputIterator2 first2, InputIterator2 last2 ) /// \return a pair of iterators pointing to the first elements in the sequence that do not match /// /// \param first1 The start of the first range. /// \param last1 One past the end of the first range. /// \param first2 The start of the second range. /// \param last2 One past the end of the second range. template <class InputIterator1, class InputIterator2> std::pair<InputIterator1, InputIterator2> mismatch ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2 ) { for (; first1 != last1 && first2 != last2; ++first1, ++first2) if ( *first1 != *first2 ) break; return std::pair<InputIterator1, InputIterator2>(first1, first2); } // There are already range-based versions of these. }} // namespace boost and algorithm #endif // BOOST_ALGORITHM_MISMATCH_HPP