60 #pragma GCC system_header
65 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
70 using std::_Temporary_buffer;
72 template<typename _InputIter, typename _Size, typename _ForwardIter>
73 pair<_InputIter, _ForwardIter>
74 __uninitialized_copy_n(_InputIter __first, _Size __count,
75 _ForwardIter __result, std::input_iterator_tag)
77 _ForwardIter __cur = __result;
80 for (; __count > 0 ; --__count, ++__first, ++__cur)
82 return pair<_InputIter, _ForwardIter>(__first, __cur);
87 __throw_exception_again;
91 template<
typename _RandomAccessIter,
typename _Size,
typename _ForwardIter>
92 inline pair<_RandomAccessIter, _ForwardIter>
93 __uninitialized_copy_n(_RandomAccessIter __first, _Size __count,
94 _ForwardIter __result,
97 _RandomAccessIter __last = __first + __count;
98 return (pair<_RandomAccessIter, _ForwardIter>
102 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
103 inline pair<_InputIter, _ForwardIter>
104 __uninitialized_copy_n(_InputIter __first, _Size __count,
105 _ForwardIter __result)
106 {
return __gnu_cxx::__uninitialized_copy_n(__first, __count, __result,
119 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
120 inline pair<_InputIter, _ForwardIter>
122 _ForwardIter __result)
123 {
return __gnu_cxx::__uninitialized_copy_n(__first, __count, __result,
129 template<
typename _InputIter,
typename _Size,
typename _ForwardIter,
131 pair<_InputIter, _ForwardIter>
132 __uninitialized_copy_n_a(_InputIter __first, _Size __count,
133 _ForwardIter __result,
136 _ForwardIter __cur = __result;
139 for (; __count > 0 ; --__count, ++__first, ++__cur)
140 __alloc.construct(&*__cur, *__first);
141 return pair<_InputIter, _ForwardIter>(__first, __cur);
146 __throw_exception_again;
150 template<
typename _InputIter,
typename _Size,
typename _ForwardIter,
152 inline pair<_InputIter, _ForwardIter>
153 __uninitialized_copy_n_a(_InputIter __first, _Size __count,
154 _ForwardIter __result,
180 template <
class _ForwardIterator,
class _Tp
181 =
typename std::iterator_traits<_ForwardIterator>::value_type >
186 : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) { }
192 _GLIBCXX_END_NAMESPACE