8#ifndef ADOBE_ALGORITHM_MISMATCH_HPP
9#define ADOBE_ALGORITHM_MISMATCH_HPP
13#include <boost/range/begin.hpp>
14#include <boost/range/end.hpp>
20#if ADOBE_HAS_CPLUS0X_CONCEPTS
23concept_map CopyConstructible<pair<const unsigned char*, const unsigned char*>> {}
45template <
class InputRange1,
class InputIterator2>
46inline std::pair<typename boost::range_iterator<InputRange1>::type, InputIterator2>
47mismatch(InputRange1& range1, InputIterator2 first2) {
48 return std::mismatch(boost::begin(range1), boost::end(range1), first2);
57template <
class InputRange1,
class InputIterator2>
58inline std::pair<typename boost::range_const_iterator<InputRange1>::type, InputIterator2>
59mismatch(
const InputRange1& range1, InputIterator2 first2) {
60 return std::mismatch(boost::begin(range1), boost::end(range1), first2);
68template <
class InputIterator1,
class InputIterator2,
class BinaryPredicate>
69inline std::pair<InputIterator1, InputIterator2>
70mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate pred) {
71 return std::mismatch(first1, last1, first2,
72 std::bind(pred, std::placeholders::_1, std::placeholders::_2));
80template <
class InputRange1,
class InputIterator2,
class BinaryPredicate>
81inline std::pair<typename boost::range_iterator<InputRange1>::type, InputIterator2>
82mismatch(InputRange1& range1, InputIterator2 first2, BinaryPredicate pred) {
83 return adobe::mismatch(boost::begin(range1), boost::end(range1), first2, pred);
91template <
class InputRange1,
class InputIterator2,
class BinaryPredicate>
92inline std::pair<typename boost::range_const_iterator<InputRange1>::type, InputIterator2>
93mismatch(
const InputRange1& range1, InputIterator2 first2, BinaryPredicate pred) {
94 return adobe::mismatch(boost::begin(range1), boost::end(range1), first2, pred);
std::pair< typename boost::range_iterator< InputRange1 >::type, InputIterator2 > mismatch(InputRange1 &range1, InputIterator2 first2)
mismatch implementation