This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [Patch] Qualify standard functions with std:: in stl_algo.h
Gabriel Dos Reis wrote:
You're right. Actually I meant "diff -p". Sorry for being a pain in
the ass.
;) No problem...
Paolo.
/////////
diff -prN libstdc++-v3-last/include/bits/stl_algo.h libstdc++-v3/include/bits/stl_algo.h
*** libstdc++-v3-last/include/bits/stl_algo.h Tue Jun 10 23:52:23 2003
--- libstdc++-v3/include/bits/stl_algo.h Sun Jun 29 22:41:25 2003
*************** namespace std
*** 295,301 ****
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
__glibcpp_function_requires(_EqualOpConcept<
typename iterator_traits<_InputIterator>::value_type, _Tp>)
! return find(__first, __last, __val, __iterator_category(__first));
}
/**
--- 295,301 ----
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
__glibcpp_function_requires(_EqualOpConcept<
typename iterator_traits<_InputIterator>::value_type, _Tp>)
! return std::find(__first, __last, __val, __iterator_category(__first));
}
/**
*************** namespace std
*** 315,321 ****
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
__glibcpp_function_requires(_UnaryPredicateConcept<_Predicate,
typename iterator_traits<_InputIterator>::value_type>)
! return find_if(__first, __last, __pred, __iterator_category(__first));
}
/**
--- 315,321 ----
__glibcpp_function_requires(_InputIteratorConcept<_InputIterator>)
__glibcpp_function_requires(_UnaryPredicateConcept<_Predicate,
typename iterator_traits<_InputIterator>::value_type>)
! return std::find_if(__first, __last, __pred, __iterator_category(__first));
}
/**
*************** namespace std
*** 467,473 ****
_ForwardIterator2 __tmp(__first2);
++__tmp;
if (__tmp == __last2)
! return find(__first1, __last1, *__first2);
// General case.
--- 467,473 ----
_ForwardIterator2 __tmp(__first2);
++__tmp;
if (__tmp == __last2)
! return std::find(__first1, __last1, *__first2);
// General case.
*************** namespace std
*** 478,484 ****
_ForwardIterator1 __current = __first1;
while (__first1 != __last1) {
! __first1 = find(__first1, __last1, *__first2);
if (__first1 == __last1)
return __last1;
--- 478,484 ----
_ForwardIterator1 __current = __first1;
while (__first1 != __last1) {
! __first1 = std::find(__first1, __last1, *__first2);
if (__first1 == __last1)
return __last1;
*************** namespace std
*** 607,613 ****
if (__count <= 0)
return __first;
else {
! __first = find(__first, __last, __val);
while (__first != __last) {
_Integer __n = __count - 1;
_ForwardIterator __i = __first;
--- 607,613 ----
if (__count <= 0)
return __first;
else {
! __first = std::find(__first, __last, __val);
while (__first != __last) {
_Integer __n = __count - 1;
_ForwardIterator __i = __first;
*************** namespace std
*** 619,625 ****
if (__n == 0)
return __first;
else
! __first = find(__i, __last, __val);
}
return __last;
}
--- 619,625 ----
if (__n == 0)
return __first;
else
! __first = std::find(__i, __last, __val);
}
return __last;
}
*************** namespace std
*** 710,716 ****
typename iterator_traits<_ForwardIterator1>::value_type>)
for ( ; __first1 != __last1; ++__first1, ++__first2)
! iter_swap(__first1, __first2);
return __first2;
}
--- 710,716 ----
typename iterator_traits<_ForwardIterator1>::value_type>)
for ( ; __first1 != __last1; ++__first1, ++__first2)
! std::iter_swap(__first1, __first2);
return __first2;
}
*************** namespace std
*** 1048,1057 ****
__glibcpp_function_requires(_EqualOpConcept<
typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
! __first = find(__first, __last, __value);
_ForwardIterator __i = __first;
return __first == __last ? __first
! : remove_copy(++__i, __last, __first, __value);
}
/**
--- 1048,1057 ----
__glibcpp_function_requires(_EqualOpConcept<
typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
! __first = std::find(__first, __last, __value);
_ForwardIterator __i = __first;
return __first == __last ? __first
! : std::remove_copy(++__i, __last, __first, __value);
}
/**
*************** namespace std
*** 1080,1089 ****
__glibcpp_function_requires(_UnaryPredicateConcept<_Predicate,
typename iterator_traits<_ForwardIterator>::value_type>)
! __first = find_if(__first, __last, __pred);
_ForwardIterator __i = __first;
return __first == __last ? __first
! : remove_copy_if(++__i, __last, __first, __pred);
}
/**
--- 1080,1089 ----
__glibcpp_function_requires(_UnaryPredicateConcept<_Predicate,
typename iterator_traits<_ForwardIterator>::value_type>)
! __first = std::find_if(__first, __last, __pred);
_ForwardIterator __i = __first;
return __first == __last ? __first
! : std::remove_copy_if(++__i, __last, __first, __pred);
}
/**
*************** namespace std
*** 1243,1250 ****
typedef typename iterator_traits<_OutputIterator>::iterator_category _IterType;
if (__first == __last) return __result;
! return __unique_copy(__first, __last,
! __result, __binary_pred, _IterType());
}
/**
--- 1243,1249 ----
typedef typename iterator_traits<_OutputIterator>::iterator_category _IterType;
if (__first == __last) return __result;
! return __unique_copy(__first, __last, __result, __binary_pred, _IterType());
}
/**
*************** __result, __binary_pred, _IterType());
*** 1269,1276 ****
__glibcpp_function_requires(_EqualityComparableConcept<
typename iterator_traits<_ForwardIterator>::value_type>)
! __first = adjacent_find(__first, __last);
! return unique_copy(__first, __last, __first);
}
/**
--- 1268,1275 ----
__glibcpp_function_requires(_EqualityComparableConcept<
typename iterator_traits<_ForwardIterator>::value_type>)
! __first = std::adjacent_find(__first, __last);
! return std::unique_copy(__first, __last, __first);
}
/**
*************** __result, __binary_pred, _IterType());
*** 1298,1305 ****
typename iterator_traits<_ForwardIterator>::value_type,
typename iterator_traits<_ForwardIterator>::value_type>)
! __first = adjacent_find(__first, __last, __binary_pred);
! return unique_copy(__first, __last, __first, __binary_pred);
}
/**
--- 1297,1304 ----
typename iterator_traits<_ForwardIterator>::value_type,
typename iterator_traits<_ForwardIterator>::value_type>)
! __first = std::adjacent_find(__first, __last, __binary_pred);
! return std::unique_copy(__first, __last, __first, __binary_pred);
}
/**
*************** __result, __binary_pred, _IterType());
*** 1317,1323 ****
if (__first == __last || __first == --__last)
return;
else
! iter_swap(__first++, __last);
}
/**
--- 1316,1322 ----
if (__first == __last || __first == --__last)
return;
else
! std::iter_swap(__first++, __last);
}
/**
*************** __result, __binary_pred, _IterType());
*** 1332,1338 ****
random_access_iterator_tag)
{
while (__first < __last)
! iter_swap(__first++, --__last);
}
/**
--- 1331,1337 ----
random_access_iterator_tag)
{
while (__first < __last)
! std::iter_swap(__first++, --__last);
}
/**
*************** __result, __binary_pred, _IterType());
*** 1425,1431 ****
_ForwardIterator __first2 = __middle;
do {
! swap(*__first++, *__first2++);
if (__first == __middle)
__middle = __first2;
} while (__first2 != __last);
--- 1424,1430 ----
_ForwardIterator __first2 = __middle;
do {
! std::swap(*__first++, *__first2++);
if (__first == __middle)
__middle = __first2;
} while (__first2 != __last);
*************** __result, __binary_pred, _IterType());
*** 1433,1439 ****
__first2 = __middle;
while (__first2 != __last) {
! swap(*__first++, *__first2++);
if (__first == __middle)
__middle = __first2;
else if (__first2 == __last)
--- 1432,1438 ----
__first2 = __middle;
while (__first2 != __last) {
! std::swap(*__first++, *__first2++);
if (__first == __middle)
__middle = __first2;
else if (__first2 == __last)
*************** __result, __binary_pred, _IterType());
*** 1464,1470 ****
__reverse(__middle, __last, bidirectional_iterator_tag());
while (__first != __middle && __middle != __last)
! swap (*__first++, *--__last);
if (__first == __middle) {
__reverse(__middle, __last, bidirectional_iterator_tag());
--- 1463,1469 ----
__reverse(__middle, __last, bidirectional_iterator_tag());
while (__first != __middle && __middle != __last)
! std::swap(*__first++, *--__last);
if (__first == __middle) {
__reverse(__middle, __last, bidirectional_iterator_tag());
*************** __result, __binary_pred, _IterType());
*** 1501,1507 ****
_Distance __l = __n - __k;
if (__k == __l) {
! swap_ranges(__first, __middle, __middle);
return;
}
--- 1500,1506 ----
_Distance __l = __n - __k;
if (__k == __l) {
! std::swap_ranges(__first, __middle, __middle);
return;
}
*************** __result, __binary_pred, _IterType());
*** 1596,1602 ****
__glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator,
typename iterator_traits<_ForwardIterator>::value_type>)
! return copy(__first, __middle, copy(__middle, __last, __result));
}
--- 1595,1601 ----
__glibcpp_function_requires(_OutputIteratorConcept<_OutputIterator,
typename iterator_traits<_ForwardIterator>::value_type>)
! return std::copy(__first, __middle, copy(__middle, __last, __result));
}
*************** __result, __binary_pred, _IterType());
*** 1641,1647 ****
if (__first == __last) return;
for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
! iter_swap(__i, __first + __random_number((__i - __first) + 1));
}
/**
--- 1640,1646 ----
if (__first == __last) return;
for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
! std::iter_swap(__i, __first + __random_number((__i - __first) + 1));
}
/**
*************** __result, __binary_pred, _IterType());
*** 1668,1674 ****
if (__first == __last) return;
for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
! iter_swap(__i, __first + __rand((__i - __first) + 1));
}
--- 1667,1673 ----
if (__first == __last) return;
for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
! std::iter_swap(__i, __first + __rand((__i - __first) + 1));
}
*************** __result, __binary_pred, _IterType());
*** 1692,1698 ****
while (++__next != __last)
if (__pred(*__next)) {
! swap(*__first, *__next);
++__first;
}
--- 1691,1697 ----
while (++__next != __last)
if (__pred(*__next)) {
! std::swap(*__first, *__next);
++__first;
}
*************** __result, __binary_pred, _IterType());
*** 1726,1732 ****
--__last;
else
break;
! iter_swap(__first, __last);
++__first;
}
}
--- 1725,1731 ----
--__last;
else
break;
! std::iter_swap(__first, __last);
++__first;
}
}
*************** __result, __binary_pred, _IterType());
*** 1772,1786 ****
if (__len == 1)
return __pred(*__first) ? __last : __first;
_ForwardIterator __middle = __first;
! advance(__middle, __len / 2);
_ForwardIterator __begin = __inplace_stable_partition(__first, __middle,
__pred,
__len / 2);
_ForwardIterator __end = __inplace_stable_partition(__middle, __last,
__pred,
__len - __len / 2);
! rotate(__begin, __middle, __end);
! advance(__begin, std::distance(__middle, __end));
return __begin;
}
--- 1771,1785 ----
if (__len == 1)
return __pred(*__first) ? __last : __first;
_ForwardIterator __middle = __first;
! std::advance(__middle, __len / 2);
_ForwardIterator __begin = __inplace_stable_partition(__first, __middle,
__pred,
__len / 2);
_ForwardIterator __end = __inplace_stable_partition(__middle, __last,
__pred,
__len - __len / 2);
! std::rotate(__begin, __middle, __end);
! std::advance(__begin, std::distance(__middle, __end));
return __begin;
}
*************** __result, __binary_pred, _IterType());
*** 1809,1820 ****
*__result2 = *__first;
++__result2;
}
! copy(__buffer, __result2, __result1);
return __result1;
}
else {
_ForwardIterator __middle = __first;
! advance(__middle, __len / 2);
_ForwardIterator __begin = __stable_partition_adaptive(__first, __middle,
__pred,
__len / 2,
--- 1808,1819 ----
*__result2 = *__first;
++__result2;
}
! std::copy(__buffer, __result2, __result1);
return __result1;
}
else {
_ForwardIterator __middle = __first;
! std::advance(__middle, __len / 2);
_ForwardIterator __begin = __stable_partition_adaptive(__first, __middle,
__pred,
__len / 2,
*************** __result, __binary_pred, _IterType());
*** 1823,1830 ****
__pred,
__len - __len / 2,
__buffer, __buffer_size);
! rotate(__begin, __middle, __end);
! advance(__begin, std::distance(__middle, __end));
return __begin;
}
}
--- 1822,1829 ----
__pred,
__len - __len / 2,
__buffer, __buffer_size);
! std::rotate(__begin, __middle, __end);
! std::advance(__begin, std::distance(__middle, __end));
return __begin;
}
}
*************** __result, __binary_pred, _IterType());
*** 1891,1897 ****
--__last;
if (!(__first < __last))
return __first;
! iter_swap(__first, __last);
++__first;
}
}
--- 1890,1896 ----
--__last;
if (!(__first < __last))
return __first;
! std::iter_swap(__first, __last);
++__first;
}
}
*************** __result, __binary_pred, _IterType());
*** 1914,1920 ****
--__last;
if (!(__first < __last))
return __first;
! iter_swap(__first, __last);
++__first;
}
}
--- 1913,1919 ----
--__last;
if (!(__first < __last))
return __first;
! std::iter_swap(__first, __last);
++__first;
}
}
*************** __result, __binary_pred, _IterType());
*** 1981,1987 ****
{
typename iterator_traits<_RandomAccessIterator>::value_type __val = *__i;
if (__val < *__first) {
! copy_backward(__first, __i, __i + 1);
*__first = __val;
}
else
--- 1980,1986 ----
{
typename iterator_traits<_RandomAccessIterator>::value_type __val = *__i;
if (__val < *__first) {
! std::copy_backward(__first, __i, __i + 1);
*__first = __val;
}
else
*************** __result, __binary_pred, _IterType());
*** 2005,2011 ****
{
typename iterator_traits<_RandomAccessIterator>::value_type __val = *__i;
if (__comp(__val, *__first)) {
! copy_backward(__first, __i, __i + 1);
*__first = __val;
}
else
--- 2004,2010 ----
{
typename iterator_traits<_RandomAccessIterator>::value_type __val = *__i;
if (__comp(__val, *__first)) {
! std::copy_backward(__first, __i, __i + 1);
*__first = __val;
}
else
*************** __result, __binary_pred, _IterType());
*** 2093,2098 ****
--- 2092,2110 ----
return __k;
}
+ template<typename _RandomAccessIterator>
+ void
+ partial_sort(_RandomAccessIterator,
+ _RandomAccessIterator,
+ _RandomAccessIterator);
+
+ template<typename _RandomAccessIterator, typename _Compare>
+ void
+ partial_sort(_RandomAccessIterator,
+ _RandomAccessIterator,
+ _RandomAccessIterator,
+ _Compare);
+
/**
* @if maint
* This is a helper function for the sort routine.
*************** __result, __binary_pred, _IterType());
*** 2107,2113 ****
while (__last - __first > _S_threshold) {
if (__depth_limit == 0) {
! partial_sort(__first, __last, __last);
return;
}
--__depth_limit;
--- 2119,2125 ----
while (__last - __first > _S_threshold) {
if (__depth_limit == 0) {
! std::partial_sort(__first, __last, __last);
return;
}
--__depth_limit;
*************** __result, __binary_pred, _IterType());
*** 2135,2141 ****
while (__last - __first > _S_threshold) {
if (__depth_limit == 0) {
! partial_sort(__first, __last, __last, __comp);
return;
}
--__depth_limit;
--- 2147,2153 ----
while (__last - __first > _S_threshold) {
if (__depth_limit == 0) {
! std::partial_sort(__first, __last, __last, __comp);
return;
}
--__depth_limit;
*************** __result, __binary_pred, _IterType());
*** 2256,2261 ****
--- 2268,2287 ----
__comp);
}
+
+ template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
+ _OutputIterator
+ merge(_InputIterator1, _InputIterator1,
+ _InputIterator2, _InputIterator2,
+ _OutputIterator);
+
+ template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
+ typename _Compare>
+ _OutputIterator
+ merge(_InputIterator1, _InputIterator1,
+ _InputIterator2, _InputIterator2,
+ _OutputIterator, _Compare);
+
template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
typename _Distance>
void
*************** __result, __binary_pred, _IterType());
*** 2265,2279 ****
_Distance __two_step = 2 * __step_size;
while (__last - __first >= __two_step) {
! __result = merge(__first, __first + __step_size,
! __first + __step_size, __first + __two_step,
! __result);
__first += __two_step;
}
__step_size = std::min(_Distance(__last - __first), __step_size);
! merge(__first, __first + __step_size, __first + __step_size, __last,
! __result);
}
template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
--- 2291,2305 ----
_Distance __two_step = 2 * __step_size;
while (__last - __first >= __two_step) {
! __result = std::merge(__first, __first + __step_size,
! __first + __step_size, __first + __two_step,
! __result);
__first += __two_step;
}
__step_size = std::min(_Distance(__last - __first), __step_size);
! std::merge(__first, __first + __step_size, __first + __step_size, __last,
! __result);
}
template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
*************** __result, __binary_pred, _IterType());
*** 2286,2303 ****
_Distance __two_step = 2 * __step_size;
while (__last - __first >= __two_step) {
! __result = merge(__first, __first + __step_size,
! __first + __step_size, __first + __two_step,
! __result,
! __comp);
__first += __two_step;
}
__step_size = std::min(_Distance(__last - __first), __step_size);
! merge(__first, __first + __step_size,
! __first + __step_size, __last,
! __result,
! __comp);
}
enum { _S_chunk_size = 7 };
--- 2312,2329 ----
_Distance __two_step = 2 * __step_size;
while (__last - __first >= __two_step) {
! __result = std::merge(__first, __first + __step_size,
! __first + __step_size, __first + __two_step,
! __result,
! __comp);
__first += __two_step;
}
__step_size = std::min(_Distance(__last - __first), __step_size);
! std::merge(__first, __first + __step_size,
! __first + __step_size, __last,
! __result,
! __comp);
}
enum { _S_chunk_size = 7 };
*************** __result, __binary_pred, _IterType());
*** 2512,2522 ****
_RandomAccessIterator>)
__glibcpp_function_requires(_LessThanComparableConcept<_ValueType>)
! make_heap(__first, __middle);
for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
if (*__i < *__first)
__pop_heap(__first, __middle, __i, _ValueType(*__i));
! sort_heap(__first, __middle);
}
/**
--- 2538,2548 ----
_RandomAccessIterator>)
__glibcpp_function_requires(_LessThanComparableConcept<_ValueType>)
! std::make_heap(__first, __middle);
for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
if (*__i < *__first)
__pop_heap(__first, __middle, __i, _ValueType(*__i));
! std::sort_heap(__first, __middle);
}
/**
*************** __result, __binary_pred, _IterType());
*** 2552,2562 ****
__glibcpp_function_requires(_BinaryPredicateConcept<_Compare,
_ValueType, _ValueType>)
! make_heap(__first, __middle, __comp);
for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
if (__comp(*__i, *__first))
__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
! sort_heap(__first, __middle, __comp);
}
/**
--- 2578,2588 ----
__glibcpp_function_requires(_BinaryPredicateConcept<_Compare,
_ValueType, _ValueType>)
! std::make_heap(__first, __middle, __comp);
for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
if (__comp(*__i, *__first))
__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
! std::sort_heap(__first, __middle, __comp);
}
/**
*************** __result, __binary_pred, _IterType());
*** 2599,2605 ****
++__result_real_last;
++__first;
}
! make_heap(__result_first, __result_real_last);
while (__first != __last) {
if (*__first < *__result_first)
__adjust_heap(__result_first, _DistanceType(0),
--- 2625,2631 ----
++__result_real_last;
++__first;
}
! std::make_heap(__result_first, __result_real_last);
while (__first != __last) {
if (*__first < *__result_first)
__adjust_heap(__result_first, _DistanceType(0),
*************** __result, __binary_pred, _IterType());
*** 2607,2613 ****
_InputValueType(*__first));
++__first;
}
! sort_heap(__result_first, __result_real_last);
return __result_real_last;
}
--- 2633,2639 ----
_InputValueType(*__first));
++__first;
}
! std::sort_heap(__result_first, __result_real_last);
return __result_real_last;
}
*************** __result, __binary_pred, _IterType());
*** 2655,2661 ****
++__result_real_last;
++__first;
}
! make_heap(__result_first, __result_real_last, __comp);
while (__first != __last) {
if (__comp(*__first, *__result_first))
__adjust_heap(__result_first, _DistanceType(0),
--- 2681,2687 ----
++__result_real_last;
++__first;
}
! std::make_heap(__result_first, __result_real_last, __comp);
while (__first != __last) {
if (__comp(*__first, *__result_first))
__adjust_heap(__result_first, _DistanceType(0),
*************** __result, __binary_pred, _IterType());
*** 2664,2670 ****
__comp);
++__first;
}
! sort_heap(__result_first, __result_real_last, __comp);
return __result_real_last;
}
--- 2690,2696 ----
__comp);
++__first;
}
! std::sort_heap(__result_first, __result_real_last, __comp);
return __result_real_last;
}
*************** __result, __binary_pred, _IterType());
*** 2789,2795 ****
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! advance(__middle, __half);
if (*__middle < __val) {
__first = __middle;
++__first;
--- 2815,2821 ----
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! std::advance(__middle, __half);
if (*__middle < __val) {
__first = __middle;
++__first;
*************** __result, __binary_pred, _IterType());
*** 2834,2840 ****
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! advance(__middle, __half);
if (__comp(*__middle, __val)) {
__first = __middle;
++__first;
--- 2860,2866 ----
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! std::advance(__middle, __half);
if (__comp(*__middle, __val)) {
__first = __middle;
++__first;
*************** __result, __binary_pred, _IterType());
*** 2876,2882 ****
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! advance(__middle, __half);
if (__val < *__middle)
__len = __half;
else {
--- 2902,2908 ----
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! std::advance(__middle, __half);
if (__val < *__middle)
__len = __half;
else {
*************** __result, __binary_pred, _IterType());
*** 2921,2927 ****
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! advance(__middle, __half);
if (__comp(__val, *__middle))
__len = __half;
else {
--- 2947,2953 ----
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! std::advance(__middle, __half);
if (__comp(__val, *__middle))
__len = __half;
else {
*************** __result, __binary_pred, _IterType());
*** 2969,2975 ****
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! advance(__middle, __half);
if (*__middle < __val) {
__first = __middle;
++__first;
--- 2995,3001 ----
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! std::advance(__middle, __half);
if (*__middle < __val) {
__first = __middle;
++__first;
*************** __result, __binary_pred, _IterType());
*** 2978,2990 ****
else if (__val < *__middle)
__len = __half;
else {
! __left = lower_bound(__first, __middle, __val);
! advance(__first, __len);
! __right = upper_bound(++__middle, __first, __val);
! return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
}
}
! return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
}
/**
--- 3004,3016 ----
else if (__val < *__middle)
__len = __half;
else {
! __left = std::lower_bound(__first, __middle, __val);
! std::advance(__first, __len);
! __right = std::upper_bound(++__middle, __first, __val);
! return std::pair<_ForwardIterator, _ForwardIterator>(__left, __right);
}
}
! return std::pair<_ForwardIterator, _ForwardIterator>(__first, __first);
}
/**
*************** __result, __binary_pred, _IterType());
*** 3024,3030 ****
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! advance(__middle, __half);
if (__comp(*__middle, __val)) {
__first = __middle;
++__first;
--- 3050,3056 ----
while (__len > 0) {
__half = __len >> 1;
__middle = __first;
! std::advance(__middle, __half);
if (__comp(*__middle, __val)) {
__first = __middle;
++__first;
*************** __result, __binary_pred, _IterType());
*** 3033,3045 ****
else if (__comp(__val, *__middle))
__len = __half;
else {
! __left = lower_bound(__first, __middle, __val, __comp);
! advance(__first, __len);
! __right = upper_bound(++__middle, __first, __val, __comp);
! return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
}
}
! return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
}
/**
--- 3059,3071 ----
else if (__comp(__val, *__middle))
__len = __half;
else {
! __left = std::lower_bound(__first, __middle, __val, __comp);
! std::advance(__first, __len);
! __right = std::upper_bound(++__middle, __first, __val, __comp);
! return std::pair<_ForwardIterator, _ForwardIterator>(__left, __right);
}
}
! return std::pair<_ForwardIterator, _ForwardIterator>(__first, __first);
}
/**
*************** __result, __binary_pred, _IterType());
*** 3065,3071 ****
typename iterator_traits<_ForwardIterator>::value_type>)
__glibcpp_function_requires(_LessThanComparableConcept<_Tp>)
! _ForwardIterator __i = lower_bound(__first, __last, __val);
return __i != __last && !(__val < *__i);
}
--- 3091,3097 ----
typename iterator_traits<_ForwardIterator>::value_type>)
__glibcpp_function_requires(_LessThanComparableConcept<_Tp>)
! _ForwardIterator __i = std::lower_bound(__first, __last, __val);
return __i != __last && !(__val < *__i);
}
*************** __result, __binary_pred, _IterType());
*** 3096,3102 ****
__glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp,
typename iterator_traits<_ForwardIterator>::value_type>)
! _ForwardIterator __i = lower_bound(__first, __last, __val, __comp);
return __i != __last && !__comp(__val, *__i);
}
--- 3122,3128 ----
__glibcpp_function_requires(_BinaryPredicateConcept<_Compare, _Tp,
typename iterator_traits<_ForwardIterator>::value_type>)
! _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
return __i != __last && !__comp(__val, *__i);
}
*************** __result, __binary_pred, _IterType());
*** 3144,3150 ****
}
++__result;
}
! return copy(__first2, __last2, copy(__first1, __last1, __result));
}
/**
--- 3170,3176 ----
}
++__result;
}
! return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
}
/**
*************** __result, __binary_pred, _IterType());
*** 3197,3203 ****
}
++__result;
}
! return copy(__first2, __last2, copy(__first1, __last1, __result));
}
/**
--- 3223,3229 ----
}
++__result;
}
! return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
}
/**
*************** __result, __binary_pred, _IterType());
*** 3216,3222 ****
return;
if (__len1 + __len2 == 2) {
if (*__middle < *__first)
! iter_swap(__first, __middle);
return;
}
_BidirectionalIterator __first_cut = __first;
--- 3242,3248 ----
return;
if (__len1 + __len2 == 2) {
if (*__middle < *__first)
! std::iter_swap(__first, __middle);
return;
}
_BidirectionalIterator __first_cut = __first;
*************** __result, __binary_pred, _IterType());
*** 3225,3243 ****
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! advance(__first_cut, __len11);
! __second_cut = lower_bound(__middle, __last, *__first_cut);
__len22 = std::distance(__middle, __second_cut);
}
else {
__len22 = __len2 / 2;
! advance(__second_cut, __len22);
! __first_cut = upper_bound(__first, __middle, *__second_cut);
__len11 = std::distance(__first, __first_cut);
}
! rotate(__first_cut, __middle, __second_cut);
_BidirectionalIterator __new_middle = __first_cut;
! advance(__new_middle, std::distance(__middle, __second_cut));
__merge_without_buffer(__first, __first_cut, __new_middle,
__len11, __len22);
__merge_without_buffer(__new_middle, __second_cut, __last,
--- 3251,3269 ----
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! std::advance(__first_cut, __len11);
! __second_cut = std::lower_bound(__middle, __last, *__first_cut);
__len22 = std::distance(__middle, __second_cut);
}
else {
__len22 = __len2 / 2;
! std::advance(__second_cut, __len22);
! __first_cut = std::upper_bound(__first, __middle, *__second_cut);
__len11 = std::distance(__first, __first_cut);
}
! std::rotate(__first_cut, __middle, __second_cut);
_BidirectionalIterator __new_middle = __first_cut;
! std::advance(__new_middle, std::distance(__middle, __second_cut));
__merge_without_buffer(__first, __first_cut, __new_middle,
__len11, __len22);
__merge_without_buffer(__new_middle, __second_cut, __last,
*************** __result, __binary_pred, _IterType());
*** 3261,3267 ****
return;
if (__len1 + __len2 == 2) {
if (__comp(*__middle, *__first))
! iter_swap(__first, __middle);
return;
}
_BidirectionalIterator __first_cut = __first;
--- 3287,3293 ----
return;
if (__len1 + __len2 == 2) {
if (__comp(*__middle, *__first))
! std::iter_swap(__first, __middle);
return;
}
_BidirectionalIterator __first_cut = __first;
*************** __result, __binary_pred, _IterType());
*** 3270,3277 ****
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! advance(__first_cut, __len11);
! __second_cut = lower_bound(__middle, __last, *__first_cut, __comp);
__len22 = std::distance(__middle, __second_cut);
}
else {
--- 3296,3303 ----
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! std::advance(__first_cut, __len11);
! __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp);
__len22 = std::distance(__middle, __second_cut);
}
else {
*************** __result, __binary_pred, _IterType());
*** 3280,3288 ****
__first_cut = upper_bound(__first, __middle, *__second_cut, __comp);
__len11 = std::distance(__first, __first_cut);
}
! rotate(__first_cut, __middle, __second_cut);
_BidirectionalIterator __new_middle = __first_cut;
! advance(__new_middle, std::distance(__middle, __second_cut));
__merge_without_buffer(__first, __first_cut, __new_middle,
__len11, __len22, __comp);
__merge_without_buffer(__new_middle, __second_cut, __last,
--- 3306,3314 ----
__first_cut = upper_bound(__first, __middle, *__second_cut, __comp);
__len11 = std::distance(__first, __first_cut);
}
! std::rotate(__first_cut, __middle, __second_cut);
_BidirectionalIterator __new_middle = __first_cut;
! std::advance(__new_middle, std::distance(__middle, __second_cut));
__merge_without_buffer(__first, __first_cut, __new_middle,
__len11, __len22, __comp);
__merge_without_buffer(__new_middle, __second_cut, __last,
*************** __result, __binary_pred, _IterType());
*** 3306,3323 ****
{
_BidirectionalIterator2 __buffer_end;
if (__len1 > __len2 && __len2 <= __buffer_size) {
! __buffer_end = copy(__middle, __last, __buffer);
! copy_backward(__first, __middle, __last);
! return copy(__buffer, __buffer_end, __first);
}
else if (__len1 <= __buffer_size) {
! __buffer_end = copy(__first, __middle, __buffer);
! copy(__middle, __last, __first);
! return copy_backward(__buffer, __buffer_end, __last);
}
else {
! rotate(__first, __middle, __last);
! advance(__first, std::distance(__middle, __last));
return __first;
}
}
--- 3332,3349 ----
{
_BidirectionalIterator2 __buffer_end;
if (__len1 > __len2 && __len2 <= __buffer_size) {
! __buffer_end = std::copy(__middle, __last, __buffer);
! std::copy_backward(__first, __middle, __last);
! return std::copy(__buffer, __buffer_end, __first);
}
else if (__len1 <= __buffer_size) {
! __buffer_end = std::copy(__first, __middle, __buffer);
! std::copy(__middle, __last, __first);
! return std::copy_backward(__buffer, __buffer_end, __last);
}
else {
! std::rotate(__first, __middle, __last);
! std::advance(__first, std::distance(__middle, __last));
return __first;
}
}
*************** __result, __binary_pred, _IterType());
*** 3335,3356 ****
_BidirectionalIterator3 __result)
{
if (__first1 == __last1)
! return copy_backward(__first2, __last2, __result);
if (__first2 == __last2)
! return copy_backward(__first1, __last1, __result);
--__last1;
--__last2;
while (true) {
if (*__last2 < *__last1) {
*--__result = *__last1;
if (__first1 == __last1)
! return copy_backward(__first2, ++__last2, __result);
--__last1;
}
else {
*--__result = *__last2;
if (__first2 == __last2)
! return copy_backward(__first1, ++__last1, __result);
--__last2;
}
}
--- 3361,3382 ----
_BidirectionalIterator3 __result)
{
if (__first1 == __last1)
! return std::copy_backward(__first2, __last2, __result);
if (__first2 == __last2)
! return std::copy_backward(__first1, __last1, __result);
--__last1;
--__last2;
while (true) {
if (*__last2 < *__last1) {
*--__result = *__last1;
if (__first1 == __last1)
! return std::copy_backward(__first2, ++__last2, __result);
--__last1;
}
else {
*--__result = *__last2;
if (__first2 == __last2)
! return std::copy_backward(__first1, ++__last1, __result);
--__last2;
}
}
*************** __result, __binary_pred, _IterType());
*** 3370,3391 ****
_Compare __comp)
{
if (__first1 == __last1)
! return copy_backward(__first2, __last2, __result);
if (__first2 == __last2)
! return copy_backward(__first1, __last1, __result);
--__last1;
--__last2;
while (true) {
if (__comp(*__last2, *__last1)) {
*--__result = *__last1;
if (__first1 == __last1)
! return copy_backward(__first2, ++__last2, __result);
--__last1;
}
else {
*--__result = *__last2;
if (__first2 == __last2)
! return copy_backward(__first1, ++__last1, __result);
--__last2;
}
}
--- 3396,3417 ----
_Compare __comp)
{
if (__first1 == __last1)
! return std::copy_backward(__first2, __last2, __result);
if (__first2 == __last2)
! return std::copy_backward(__first1, __last1, __result);
--__last1;
--__last2;
while (true) {
if (__comp(*__last2, *__last1)) {
*--__result = *__last1;
if (__first1 == __last1)
! return std::copy_backward(__first2, ++__last2, __result);
--__last1;
}
else {
*--__result = *__last2;
if (__first2 == __last2)
! return std::copy_backward(__first1, ++__last1, __result);
--__last2;
}
}
*************** __result, __binary_pred, _IterType());
*** 3405,3415 ****
_Pointer __buffer, _Distance __buffer_size)
{
if (__len1 <= __len2 && __len1 <= __buffer_size) {
! _Pointer __buffer_end = copy(__first, __middle, __buffer);
! merge(__buffer, __buffer_end, __middle, __last, __first);
}
else if (__len2 <= __buffer_size) {
! _Pointer __buffer_end = copy(__middle, __last, __buffer);
__merge_backward(__first, __middle, __buffer, __buffer_end, __last);
}
else {
--- 3431,3441 ----
_Pointer __buffer, _Distance __buffer_size)
{
if (__len1 <= __len2 && __len1 <= __buffer_size) {
! _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
! std::merge(__buffer, __buffer_end, __middle, __last, __first);
}
else if (__len2 <= __buffer_size) {
! _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
__merge_backward(__first, __middle, __buffer, __buffer_end, __last);
}
else {
*************** __result, __binary_pred, _IterType());
*** 3419,3432 ****
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! advance(__first_cut, __len11);
! __second_cut = lower_bound(__middle, __last, *__first_cut);
__len22 = std::distance(__middle, __second_cut);
}
else {
__len22 = __len2 / 2;
! advance(__second_cut, __len22);
! __first_cut = upper_bound(__first, __middle, *__second_cut);
__len11 = std::distance(__first, __first_cut);
}
_BidirectionalIterator __new_middle =
--- 3445,3458 ----
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! std::advance(__first_cut, __len11);
! __second_cut = std::lower_bound(__middle, __last, *__first_cut);
__len22 = std::distance(__middle, __second_cut);
}
else {
__len22 = __len2 / 2;
! std::advance(__second_cut, __len22);
! __first_cut = std::upper_bound(__first, __middle, *__second_cut);
__len11 = std::distance(__first, __first_cut);
}
_BidirectionalIterator __new_middle =
*************** __result, __binary_pred, _IterType());
*** 3456,3466 ****
_Compare __comp)
{
if (__len1 <= __len2 && __len1 <= __buffer_size) {
! _Pointer __buffer_end = copy(__first, __middle, __buffer);
! merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
}
else if (__len2 <= __buffer_size) {
! _Pointer __buffer_end = copy(__middle, __last, __buffer);
__merge_backward(__first, __middle, __buffer, __buffer_end, __last,
__comp);
}
--- 3482,3492 ----
_Compare __comp)
{
if (__len1 <= __len2 && __len1 <= __buffer_size) {
! _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
! std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
}
else if (__len2 <= __buffer_size) {
! _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
__merge_backward(__first, __middle, __buffer, __buffer_end, __last,
__comp);
}
*************** __result, __binary_pred, _IterType());
*** 3471,3484 ****
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! advance(__first_cut, __len11);
! __second_cut = lower_bound(__middle, __last, *__first_cut, __comp);
__len22 = std::distance(__middle, __second_cut);
}
else {
__len22 = __len2 / 2;
! advance(__second_cut, __len22);
! __first_cut = upper_bound(__first, __middle, *__second_cut, __comp);
__len11 = std::distance(__first, __first_cut);
}
_BidirectionalIterator __new_middle =
--- 3497,3510 ----
_Distance __len22 = 0;
if (__len1 > __len2) {
__len11 = __len1 / 2;
! std::advance(__first_cut, __len11);
! __second_cut = std::lower_bound(__middle, __last, *__first_cut, __comp);
__len22 = std::distance(__middle, __second_cut);
}
else {
__len22 = __len2 / 2;
! std::advance(__second_cut, __len22);
! __first_cut = std::upper_bound(__first, __middle, *__second_cut, __comp);
__len11 = std::distance(__first, __first_cut);
}
_BidirectionalIterator __new_middle =
*************** __result, __binary_pred, _IterType());
*** 3682,3688 ****
}
++__result;
}
! return copy(__first2, __last2, copy(__first1, __last1, __result));
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
--- 3708,3714 ----
}
++__result;
}
! return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
*************** __result, __binary_pred, _IterType());
*** 3720,3726 ****
}
++__result;
}
! return copy(__first2, __last2, copy(__first1, __last1, __result));
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
--- 3746,3752 ----
}
++__result;
}
! return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
*************** __result, __binary_pred, _IterType());
*** 3816,3822 ****
++__first1;
++__first2;
}
! return copy(__first1, __last1, __result);
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
--- 3842,3848 ----
++__first1;
++__first2;
}
! return std::copy(__first1, __last1, __result);
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
*************** __result, __binary_pred, _IterType());
*** 3850,3856 ****
++__first1;
++__first2;
}
! return copy(__first1, __last1, __result);
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
--- 3876,3882 ----
++__first1;
++__first2;
}
! return std::copy(__first1, __last1, __result);
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
*************** __result, __binary_pred, _IterType());
*** 3885,3891 ****
++__first1;
++__first2;
}
! return copy(__first2, __last2, copy(__first1, __last1, __result));
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
--- 3911,3917 ----
++__first1;
++__first2;
}
! return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
}
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator,
*************** __result, __binary_pred, _IterType());
*** 3923,3929 ****
++__first1;
++__first2;
}
! return copy(__first2, __last2, copy(__first1, __last1, __result));
}
// min_element and max_element, with and without an explicitly supplied
--- 3949,3955 ----
++__first1;
++__first2;
}
! return std::copy(__first2, __last2, std::copy(__first1, __last1, __result));
}
// min_element and max_element, with and without an explicitly supplied
*************** __result, __binary_pred, _IterType());
*** 4028,4039 ****
_BidirectionalIterator __j = __last;
while (!(*__i < *--__j))
{}
! iter_swap(__i, __j);
! reverse(__ii, __last);
return true;
}
if (__i == __first) {
! reverse(__first, __last);
return false;
}
}
--- 4054,4065 ----
_BidirectionalIterator __j = __last;
while (!(*__i < *--__j))
{}
! std::iter_swap(__i, __j);
! std::reverse(__ii, __last);
return true;
}
if (__i == __first) {
! std::reverse(__first, __last);
return false;
}
}
*************** __result, __binary_pred, _IterType());
*** 4066,4077 ****
_BidirectionalIterator __j = __last;
while (!__comp(*__i, *--__j))
{}
! iter_swap(__i, __j);
! reverse(__ii, __last);
return true;
}
if (__i == __first) {
! reverse(__first, __last);
return false;
}
}
--- 4092,4103 ----
_BidirectionalIterator __j = __last;
while (!__comp(*__i, *--__j))
{}
! std::iter_swap(__i, __j);
! std::reverse(__ii, __last);
return true;
}
if (__i == __first) {
! std::reverse(__first, __last);
return false;
}
}
*************** __result, __binary_pred, _IterType());
*** 4102,4113 ****
_BidirectionalIterator __j = __last;
while (!(*--__j < *__i))
{}
! iter_swap(__i, __j);
! reverse(__ii, __last);
return true;
}
if (__i == __first) {
! reverse(__first, __last);
return false;
}
}
--- 4128,4139 ----
_BidirectionalIterator __j = __last;
while (!(*--__j < *__i))
{}
! std::iter_swap(__i, __j);
! std::reverse(__ii, __last);
return true;
}
if (__i == __first) {
! std::reverse(__first, __last);
return false;
}
}
*************** __result, __binary_pred, _IterType());
*** 4140,4151 ****
_BidirectionalIterator __j = __last;
while (!__comp(*--__j, *__i))
{}
! iter_swap(__i, __j);
! reverse(__ii, __last);
return true;
}
if (__i == __first) {
! reverse(__first, __last);
return false;
}
}
--- 4166,4177 ----
_BidirectionalIterator __j = __last;
while (!__comp(*--__j, *__i))
{}
! std::iter_swap(__i, __j);
! std::reverse(__ii, __last);
return true;
}
if (__i == __first) {
! std::reverse(__first, __last);
return false;
}
}
*************** __result, __binary_pred, _IterType());
*** 4214,4220 ****
_ForwardIterator1 __result = __last1;
while (1) {
_ForwardIterator1 __new_result
! = search(__first1, __last1, __first2, __last2);
if (__new_result == __last1)
return __result;
else {
--- 4240,4246 ----
_ForwardIterator1 __result = __last1;
while (1) {
_ForwardIterator1 __new_result
! = std::search(__first1, __last1, __first2, __last2);
if (__new_result == __last1)
return __result;
else {
*************** __result, __binary_pred, _IterType());
*** 4240,4246 ****
_ForwardIterator1 __result = __last1;
while (1) {
_ForwardIterator1 __new_result
! = search(__first1, __last1, __first2, __last2, __comp);
if (__new_result == __last1)
return __result;
else {
--- 4266,4272 ----
_ForwardIterator1 __result = __last1;
while (1) {
_ForwardIterator1 __new_result
! = std::search(__first1, __last1, __first2, __last2, __comp);
if (__new_result == __last1)
return __result;
else {
*************** __result, __binary_pred, _IterType());
*** 4268,4281 ****
_RevIterator1 __rlast1(__first1);
_RevIterator2 __rlast2(__first2);
! _RevIterator1 __rresult = search(_RevIterator1(__last1), __rlast1,
! _RevIterator2(__last2), __rlast2);
if (__rresult == __rlast1)
return __last1;
else {
_BidirectionalIterator1 __result = __rresult.base();
! advance(__result, -std::distance(__first2, __last2));
return __result;
}
}
--- 4294,4307 ----
_RevIterator1 __rlast1(__first1);
_RevIterator2 __rlast2(__first2);
! _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
! _RevIterator2(__last2), __rlast2);
if (__rresult == __rlast1)
return __last1;
else {
_BidirectionalIterator1 __result = __rresult.base();
! std::advance(__result, -std::distance(__first2, __last2));
return __result;
}
}
*************** __result, __binary_pred, _IterType());
*** 4297,4311 ****
_RevIterator1 __rlast1(__first1);
_RevIterator2 __rlast2(__first2);
! _RevIterator1 __rresult = search(_RevIterator1(__last1), __rlast1,
! _RevIterator2(__last2), __rlast2,
! __comp);
if (__rresult == __rlast1)
return __last1;
else {
_BidirectionalIterator1 __result = __rresult.base();
! advance(__result, -std::distance(__first2, __last2));
return __result;
}
}
--- 4323,4337 ----
_RevIterator1 __rlast1(__first1);
_RevIterator2 __rlast2(__first2);
! _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
! _RevIterator2(__last2), __rlast2,
! __comp);
if (__rresult == __rlast1)
return __last1;
else {
_BidirectionalIterator1 __result = __rresult.base();
! std::advance(__result, -std::distance(__first2, __last2));
return __result;
}
}