This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
        }
      }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]