stl_algobase.h (__copy_normal::copy_n): Uglify to __copy_n.
authorPaolo Carlini <pcarlini@suse.de>
Sun, 18 Dec 2005 15:53:10 +0000 (15:53 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sun, 18 Dec 2005 15:53:10 +0000 (15:53 +0000)
2005-12-18  Paolo Carlini  <pcarlini@suse.de>

* include/bits/stl_algobase.h (__copy_normal::copy_n): Uglify
to __copy_n.
(__copy_backward::copy_b): Likewise to __copy_b.
(__copy_backward_normal::copy_b_n): Likewise to __copy_b_n.
(copy, __copy_backward_aux, copy_backward): Adjust.

2005-12-18  Paolo Carlini  <pcarlini@suse.de>

* include/bits/stl_algo.h (partial_sort_copy): Add
_BinaryPredicateConcept<_Compare, _InputValueType, _OutputValueType>
(merge, set_union, set_symmetric_difference): Add
_OutputIteratorConcept<_OutputIterator, _ValueType2>.
(binary_search): Remove redundant _BinaryPredicateConcept<_Compare,
_ValueType, _Tp>, taken care by lower_bound.
* include/bits/stl_algo.h: Cosmetic changes.

2005-12-18  Paolo Carlini  <pcarlini@suse.de>
    Howard Hinnant  <hhinnant@apple.com>

* include/bits/stl_algo.h (merge, includes, set_union,
set_intersection, set_difference, set_symmetric_difference):
Fix concept checks.

2005-12-18  Paolo Carlini  <pcarlini@suse.de>

* include/bits/stl_algo.h (partial_sort_copy, lower_bound,
upper_bound, equal_range, binary_search): Fix concept checks.

Co-Authored-By: Howard Hinnant <hhinnant@apple.com>
From-SVN: r108758

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_algo.h
libstdc++-v3/include/bits/stl_algobase.h

index 60f7b8e..0f9c90f 100644 (file)
@@ -1,3 +1,33 @@
+2005-12-18  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/stl_algobase.h (__copy_normal::copy_n): Uglify
+       to __copy_n.
+       (__copy_backward::copy_b): Likewise to __copy_b.
+       (__copy_backward_normal::copy_b_n): Likewise to __copy_b_n.
+       (copy, __copy_backward_aux, copy_backward): Adjust.
+
+2005-12-18  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/stl_algo.h (partial_sort_copy): Add
+       _BinaryPredicateConcept<_Compare, _InputValueType, _OutputValueType>
+       (merge, set_union, set_symmetric_difference): Add
+       _OutputIteratorConcept<_OutputIterator, _ValueType2>.
+       (binary_search): Remove redundant _BinaryPredicateConcept<_Compare,
+       _ValueType, _Tp>, taken care by lower_bound.
+       * include/bits/stl_algo.h: Cosmetic changes.
+
+2005-12-18  Paolo Carlini  <pcarlini@suse.de>
+           Howard Hinnant  <hhinnant@apple.com>
+
+       * include/bits/stl_algo.h (merge, includes, set_union,
+       set_intersection, set_difference, set_symmetric_difference):
+       Fix concept checks.
+
+2005-12-18  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/stl_algo.h (partial_sort_copy, lower_bound,
+       upper_bound, equal_range, binary_search): Fix concept checks.
+
 2005-12-18  Benjamin Kosnik  <bkoz@redhat.com>
 
        * config/abi/post: New.
index 1a7fd6e..6cb9c0b 100644 (file)
@@ -2512,8 +2512,9 @@ namespace std
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
       __glibcxx_function_requires(_ConvertibleConcept<_InputValueType,
                                  _OutputValueType>)
+      __glibcxx_function_requires(_LessThanOpConcept<_InputValueType,
+                                                    _OutputValueType>)
       __glibcxx_function_requires(_LessThanComparableConcept<_OutputValueType>)
-      __glibcxx_function_requires(_LessThanComparableConcept<_InputValueType>)
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_valid_range(__result_first, __result_last);
 
@@ -2580,6 +2581,8 @@ namespace std
       __glibcxx_function_requires(_ConvertibleConcept<_InputValueType,
                                  _OutputValueType>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+                                 _InputValueType, _OutputValueType>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
                                  _OutputValueType, _OutputValueType>)
       __glibcxx_requires_valid_range(__first, __last);
       __glibcxx_requires_valid_range(__result_first, __result_last);
@@ -2772,13 +2775,8 @@ namespace std
        _DistanceType;
 
       // concept requirements
-      // Note that these are slightly stricter than those of the 4-argument
-      // version, defined next.  The difference is in the strictness of the
-      // comparison operations... so for looser checking, define your own
-      // comparison function, as was intended.
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_SameTypeConcept<_Tp, _ValueType>)
-      __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType, _Tp>)
       __glibcxx_requires_partitioned(__first, __last, __val);
 
       _DistanceType __len = std::distance(__first, __last);
@@ -2874,10 +2872,8 @@ namespace std
        _DistanceType;
 
       // concept requirements
-      // See comments on lower_bound.
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_SameTypeConcept<_Tp, _ValueType>)
-      __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
+      __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>)
       __glibcxx_requires_partitioned(__first, __last, __val);
 
       _DistanceType __len = std::distance(__first, __last);
@@ -3120,16 +3116,19 @@ namespace std
          _InputIterator2 __first2, _InputIterator2 __last2,
          _OutputIterator __result)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+                                 _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)        
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
@@ -3178,17 +3177,20 @@ namespace std
          _InputIterator2 __first2, _InputIterator2 __last2,
          _OutputIterator __result, _Compare __comp)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+                                 _ValueType2>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
+                                 _ValueType2, _ValueType1>)
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
@@ -3951,10 +3953,9 @@ namespace std
        _DistanceType;
 
       // concept requirements
-      // See comments on lower_bound.
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_SameTypeConcept<_Tp, _ValueType>)
-      __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType, _Tp>)
+      __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) 
       __glibcxx_requires_partitioned(__first, __last, __val);
 
       _DistanceType __len = std::distance(__first, __last);
@@ -4065,12 +4066,12 @@ namespace std
     binary_search(_ForwardIterator __first, _ForwardIterator __last,
                   const _Tp& __val)
     {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+       _ValueType;
+
       // concept requirements
-      // See comments on lower_bound.
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
-      __glibcxx_function_requires(_SameTypeConcept<_Tp,
-               typename iterator_traits<_ForwardIterator>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<_Tp>)
+      __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>)
       __glibcxx_requires_partitioned(__first, __last, __val);
 
       _ForwardIterator __i = std::lower_bound(__first, __last, __val);
@@ -4097,12 +4098,13 @@ namespace std
     binary_search(_ForwardIterator __first, _ForwardIterator __last,
                   const _Tp& __val, _Compare __comp)
     {
+      typedef typename iterator_traits<_ForwardIterator>::value_type
+       _ValueType;
+
       // concept requirements
       __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-               typename iterator_traits<_ForwardIterator>::value_type, _Tp>)
-      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, _Tp,
-               typename iterator_traits<_ForwardIterator>::value_type>)
+                                 _Tp, _ValueType>)
       __glibcxx_requires_partitioned_pred(__first, __last, __val, __comp);
 
       _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
@@ -4135,14 +4137,16 @@ namespace std
     includes(_InputIterator1 __first1, _InputIterator1 __last1,
             _InputIterator2 __first2, _InputIterator2 __last2)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<
-           typename iterator_traits<_InputIterator1>::value_type>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
@@ -4182,15 +4186,18 @@ namespace std
     includes(_InputIterator1 __first1, _InputIterator1 __last1,
             _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
+                                 _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+                                 _ValueType2, _ValueType1>)
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
@@ -4229,16 +4236,20 @@ namespace std
              _InputIterator2 __first2, _InputIterator2 __last2,
              _OutputIterator __result)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+                                 _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
@@ -4291,17 +4302,22 @@ namespace std
              _InputIterator2 __first2, _InputIterator2 __last2,
              _OutputIterator __result, _Compare __comp)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+                                 _ValueType2>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
+                                 _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+                                 _ValueType2, _ValueType1>)
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
@@ -4352,16 +4368,18 @@ namespace std
                     _InputIterator2 __first2, _InputIterator2 __last2,
                     _OutputIterator __result)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
@@ -4406,17 +4424,20 @@ namespace std
                     _InputIterator2 __first2, _InputIterator2 __last2,
                     _OutputIterator __result, _Compare __comp)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+                                 _ValueType1, _ValueType2>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
+                                 _ValueType2, _ValueType1>)
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
@@ -4460,16 +4481,18 @@ namespace std
                   _InputIterator2 __first2, _InputIterator2 __last2,
                   _OutputIterator __result)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)        
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
@@ -4518,17 +4541,20 @@ namespace std
                   _InputIterator2 __first2, _InputIterator2 __last2,
                   _OutputIterator __result, _Compare __comp)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
+                                 _ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+                                 _ValueType2, _ValueType1>)
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
@@ -4572,16 +4598,20 @@ namespace std
                             _InputIterator2 __first2, _InputIterator2 __last2,
                             _OutputIterator __result)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
-      __glibcxx_function_requires(_LessThanComparableConcept<
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+                                 _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
+      __glibcxx_function_requires(_LessThanOpConcept<_ValueType2, _ValueType1>)        
       __glibcxx_requires_sorted(__first1, __last1);
       __glibcxx_requires_sorted(__first2, __last2);
 
@@ -4634,17 +4664,22 @@ namespace std
                             _OutputIterator __result,
                             _Compare __comp)
     {
+      typedef typename iterator_traits<_InputIterator1>::value_type
+       _ValueType1;
+      typedef typename iterator_traits<_InputIterator2>::value_type
+       _ValueType2;
+
       // concept requirements
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator1>)
       __glibcxx_function_requires(_InputIteratorConcept<_InputIterator2>)
-      __glibcxx_function_requires(_SameTypeConcept<
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
       __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
-           typename iterator_traits<_InputIterator1>::value_type>)
+                                 _ValueType1>)
+      __glibcxx_function_requires(_OutputIteratorConcept<_OutputIterator,
+                                 _ValueType2>)
+      __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
+                                 _ValueType1, _ValueType2>)
       __glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
-           typename iterator_traits<_InputIterator1>::value_type,
-           typename iterator_traits<_InputIterator2>::value_type>)
+                                 _ValueType2, _ValueType1>)
       __glibcxx_requires_sorted_pred(__first1, __last1, __comp);
       __glibcxx_requires_sorted_pred(__first2, __last2, __comp);
 
index d8da473..c339832 100644 (file)
@@ -322,7 +322,7 @@ namespace std
     {
       template<typename _II, typename _OI>
         static _OI
-        copy_n(_II __first, _II __last, _OI __result)
+        __copy_n(_II __first, _II __last, _OI __result)
         { return std::__copy_aux(__first, __last, __result); }
     };
 
@@ -331,7 +331,7 @@ namespace std
     {
       template<typename _II, typename _OI>
         static _OI
-        copy_n(_II __first, _II __last, _OI __result)
+        __copy_n(_II __first, _II __last, _OI __result)
         { return std::__copy_aux(__first.base(), __last.base(), __result); }
     };
 
@@ -340,7 +340,7 @@ namespace std
     {
       template<typename _II, typename _OI>
         static _OI
-        copy_n(_II __first, _II __last, _OI __result)
+        __copy_n(_II __first, _II __last, _OI __result)
         { return _OI(std::__copy_aux(__first, __last, __result.base())); }
     };
 
@@ -349,7 +349,7 @@ namespace std
     {
       template<typename _II, typename _OI>
         static _OI
-        copy_n(_II __first, _II __last, _OI __result)
+        __copy_n(_II __first, _II __last, _OI __result)
         { return _OI(std::__copy_aux(__first.base(), __last.base(),
                                     __result.base())); }
     };
@@ -383,8 +383,8 @@ namespace std
 
        const bool __in = __is_normal_iterator<_InputIterator>::__value;
        const bool __out = __is_normal_iterator<_OutputIterator>::__value;
-       return std::__copy_normal<__in, __out>::copy_n(__first, __last,
-                                                     __result);
+       return std::__copy_normal<__in, __out>::__copy_n(__first, __last,
+                                                       __result);
     }
   
   template<bool, typename>
@@ -392,7 +392,7 @@ namespace std
     {
       template<typename _BI1, typename _BI2>
         static _BI2
-        copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
+        __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
         { 
          while (__first != __last)
            *--__result = *--__last;
@@ -405,7 +405,7 @@ namespace std
     {
       template<typename _BI1, typename _BI2>
         static _BI2
-        copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
+        __copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
         { 
          typename iterator_traits<_BI1>::difference_type __n;
          for (__n = __last - __first; __n > 0; --__n)
@@ -419,7 +419,7 @@ namespace std
     {
       template<typename _Tp>
         static _Tp*
-        copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
+        __copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
         { 
          const ptrdiff_t _Num = __last - __first;
          std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
@@ -439,8 +439,9 @@ namespace std
                             && __is_pointer<_BI2>::__value
                             && __are_same<_ValueType1, _ValueType2>::__value);
 
-      return std::__copy_backward<__simple, _Category>::copy_b(__first, __last,
-                                                              __result);
+      return std::__copy_backward<__simple, _Category>::__copy_b(__first,
+                                                                __last,
+                                                                __result);
     }
 
   template<bool, bool>
@@ -448,7 +449,7 @@ namespace std
     {
       template<typename _BI1, typename _BI2>
         static _BI2
-        copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
+        __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
         { return std::__copy_backward_aux(__first, __last, __result); }
     };
 
@@ -457,7 +458,7 @@ namespace std
     {
       template<typename _BI1, typename _BI2>
         static _BI2
-        copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
+        __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
         { return std::__copy_backward_aux(__first.base(), __last.base(),
                                          __result); }
     };
@@ -467,7 +468,7 @@ namespace std
     {
       template<typename _BI1, typename _BI2>
         static _BI2
-        copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
+        __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
         { return _BI2(std::__copy_backward_aux(__first, __last,
                                               __result.base())); }
     };
@@ -477,7 +478,7 @@ namespace std
     {
       template<typename _BI1, typename _BI2>
         static _BI2
-        copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
+        __copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
         { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
                                               __result.base())); }
     };
@@ -513,8 +514,9 @@ namespace std
 
       const bool __bi1 = __is_normal_iterator<_BI1>::__value;
       const bool __bi2 = __is_normal_iterator<_BI2>::__value;
-      return std::__copy_backward_normal<__bi1, __bi2>::copy_b_n(__first, __last,
-                                                                __result);
+      return std::__copy_backward_normal<__bi1, __bi2>::__copy_b_n(__first,
+                                                                  __last,
+                                                                  __result);
     }
 
   template<bool>