stl_algobase.h (mismatch): Move...
2007-05-17 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_algobase.h (mismatch): Move... * include/bits/stl_algo.h: ... here. From-SVN: r124792
This commit is contained in:
parent
95440e3ee0
commit
1d1c53d561
@ -1,3 +1,8 @@
|
||||
2007-05-17 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/stl_algobase.h (mismatch): Move...
|
||||
* include/bits/stl_algo.h: ... here.
|
||||
|
||||
2007-05-17 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* include/tr1/cmath: Guard special math with
|
||||
|
@ -449,6 +449,72 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
return __n;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Finds the places in ranges which don't match.
|
||||
* @param first1 An input iterator.
|
||||
* @param last1 An input iterator.
|
||||
* @param first2 An input iterator.
|
||||
* @return A pair of iterators pointing to the first mismatch.
|
||||
*
|
||||
* This compares the elements of two ranges using @c == and returns a pair
|
||||
* of iterators. The first iterator points into the first range, the
|
||||
* second iterator points into the second range, and the elements pointed
|
||||
* to by the iterators are not equal.
|
||||
*/
|
||||
template<typename _InputIterator1, typename _InputIterator2>
|
||||
pair<_InputIterator1, _InputIterator2>
|
||||
mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
|
||||
_InputIterator2 __first2)
|
||||
{
|
||||
// concept requirements
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
|
||||
__glibcxx_function_requires(_EqualOpConcept<
|
||||
typename iterator_traits<_InputIterator1>::value_type,
|
||||
typename iterator_traits<_InputIterator2>::value_type>)
|
||||
__glibcxx_requires_valid_range(__first1, __last1);
|
||||
|
||||
while (__first1 != __last1 && *__first1 == *__first2)
|
||||
{
|
||||
++__first1;
|
||||
++__first2;
|
||||
}
|
||||
return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Finds the places in ranges which don't match.
|
||||
* @param first1 An input iterator.
|
||||
* @param last1 An input iterator.
|
||||
* @param first2 An input iterator.
|
||||
* @param binary_pred A binary predicate @link s20_3_1_base functor@endlink.
|
||||
* @return A pair of iterators pointing to the first mismatch.
|
||||
*
|
||||
* This compares the elements of two ranges using the binary_pred
|
||||
* parameter, and returns a pair
|
||||
* of iterators. The first iterator points into the first range, the
|
||||
* second iterator points into the second range, and the elements pointed
|
||||
* to by the iterators are not equal.
|
||||
*/
|
||||
template<typename _InputIterator1, typename _InputIterator2,
|
||||
typename _BinaryPredicate>
|
||||
pair<_InputIterator1, _InputIterator2>
|
||||
mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
|
||||
_InputIterator2 __first2, _BinaryPredicate __binary_pred)
|
||||
{
|
||||
// concept requirements
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
|
||||
__glibcxx_requires_valid_range(__first1, __last1);
|
||||
|
||||
while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2)))
|
||||
{
|
||||
++__first1;
|
||||
++__first2;
|
||||
}
|
||||
return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Search a sequence for a matching sub-sequence.
|
||||
* @param first1 A forward iterator.
|
||||
|
@ -678,72 +678,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
__value));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Finds the places in ranges which don't match.
|
||||
* @param first1 An input iterator.
|
||||
* @param last1 An input iterator.
|
||||
* @param first2 An input iterator.
|
||||
* @return A pair of iterators pointing to the first mismatch.
|
||||
*
|
||||
* This compares the elements of two ranges using @c == and returns a pair
|
||||
* of iterators. The first iterator points into the first range, the
|
||||
* second iterator points into the second range, and the elements pointed
|
||||
* to by the iterators are not equal.
|
||||
*/
|
||||
template<typename _InputIterator1, typename _InputIterator2>
|
||||
pair<_InputIterator1, _InputIterator2>
|
||||
mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
|
||||
_InputIterator2 __first2)
|
||||
{
|
||||
// concept requirements
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
|
||||
__glibcxx_function_requires(_EqualOpConcept<
|
||||
typename iterator_traits<_InputIterator1>::value_type,
|
||||
typename iterator_traits<_InputIterator2>::value_type>)
|
||||
__glibcxx_requires_valid_range(__first1, __last1);
|
||||
|
||||
while (__first1 != __last1 && *__first1 == *__first2)
|
||||
{
|
||||
++__first1;
|
||||
++__first2;
|
||||
}
|
||||
return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Finds the places in ranges which don't match.
|
||||
* @param first1 An input iterator.
|
||||
* @param last1 An input iterator.
|
||||
* @param first2 An input iterator.
|
||||
* @param binary_pred A binary predicate @link s20_3_1_base functor@endlink.
|
||||
* @return A pair of iterators pointing to the first mismatch.
|
||||
*
|
||||
* This compares the elements of two ranges using the binary_pred
|
||||
* parameter, and returns a pair
|
||||
* of iterators. The first iterator points into the first range, the
|
||||
* second iterator points into the second range, and the elements pointed
|
||||
* to by the iterators are not equal.
|
||||
*/
|
||||
template<typename _InputIterator1, typename _InputIterator2,
|
||||
typename _BinaryPredicate>
|
||||
pair<_InputIterator1, _InputIterator2>
|
||||
mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
|
||||
_InputIterator2 __first2, _BinaryPredicate __binary_pred)
|
||||
{
|
||||
// concept requirements
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
|
||||
__glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
|
||||
__glibcxx_requires_valid_range(__first1, __last1);
|
||||
|
||||
while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2)))
|
||||
{
|
||||
++__first1;
|
||||
++__first2;
|
||||
}
|
||||
return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
|
||||
}
|
||||
|
||||
|
||||
template<bool _BoolType>
|
||||
struct __equal
|
||||
|
Loading…
Reference in New Issue
Block a user