mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-17 09:20:27 +08:00
stl_algobase.h (__copy_normal::copy_n): Uglify to __copy_n.
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
This commit is contained in:
parent
6a60530dd6
commit
e75ea710dd
@ -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.
|
||||
|
@ -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);
|
||||
|
||||
@ -2579,6 +2580,8 @@ namespace std
|
||||
_RandomAccessIterator>)
|
||||
__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);
|
||||
@ -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,
|
||||
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);
|
||||
|
||||
@ -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,
|
||||
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);
|
||||
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user