1111
1212#include < __algorithm/copy_move_common.h>
1313#include < __algorithm/for_each_segment.h>
14- #include < __algorithm/iterator_operations.h>
1514#include < __algorithm/min.h>
1615#include < __config>
16+ #include < __iterator/iterator_traits.h>
1717#include < __iterator/segmented_iterator.h>
1818#include < __type_traits/common_type.h>
19+ #include < __type_traits/enable_if.h>
1920#include < __utility/move.h>
2021#include < __utility/pair.h>
2122
@@ -28,10 +29,9 @@ _LIBCPP_PUSH_MACROS
2829
2930_LIBCPP_BEGIN_NAMESPACE_STD
3031
31- template <class , class _InIter , class _Sent , class _OutIter >
32+ template <class _InIter , class _Sent , class _OutIter >
3233inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter> __copy (_InIter, _Sent, _OutIter);
3334
34- template <class _AlgPolicy >
3535struct __copy_impl {
3636 template <class _InIter , class _Sent , class _OutIter >
3737 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 pair<_InIter, _OutIter>
@@ -47,7 +47,7 @@ struct __copy_impl {
4747
4848 template <class _InIter , class _OutIter >
4949 struct _CopySegment {
50- using _Traits = __segmented_iterator_traits<_InIter>;
50+ using _Traits _LIBCPP_NODEBUG = __segmented_iterator_traits<_InIter>;
5151
5252 _OutIter& __result_;
5353
@@ -56,7 +56,7 @@ struct __copy_impl {
5656
5757 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 void
5858 operator ()(typename _Traits::__local_iterator __lfirst, typename _Traits::__local_iterator __llast) {
59- __result_ = std::__copy<_AlgPolicy> (__lfirst, __llast, std::move (__result_)).second ;
59+ __result_ = std::__copy (__lfirst, __llast, std::move (__result_)).second ;
6060 }
6161 };
6262
@@ -85,7 +85,7 @@ struct __copy_impl {
8585 while (true ) {
8686 auto __local_last = _Traits::__end (__segment_iterator);
8787 auto __size = std::min<_DiffT>(__local_last - __local_first, __last - __first);
88- auto __iters = std::__copy<_AlgPolicy> (__first, __first + __size, __local_first);
88+ auto __iters = std::__copy (__first, __first + __size, __local_first);
8989 __first = std::move (__iters.first );
9090
9191 if (__first == __last)
@@ -103,17 +103,16 @@ struct __copy_impl {
103103 }
104104};
105105
106- template <class _AlgPolicy , class _InIter , class _Sent , class _OutIter >
106+ template <class _InIter , class _Sent , class _OutIter >
107107pair<_InIter, _OutIter> inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14
108108__copy (_InIter __first, _Sent __last, _OutIter __result) {
109- return std::__copy_move_unwrap_iters<__copy_impl<_AlgPolicy> >(
110- std::move (__first), std::move (__last), std::move (__result));
109+ return std::__copy_move_unwrap_iters<__copy_impl>(std::move (__first), std::move (__last), std::move (__result));
111110}
112111
113112template <class _InputIterator , class _OutputIterator >
114113inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 _OutputIterator
115114copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result) {
116- return std::__copy<_ClassicAlgPolicy> (__first, __last, __result).second ;
115+ return std::__copy (__first, __last, __result).second ;
117116}
118117
119118_LIBCPP_END_NAMESPACE_STD
0 commit comments