59 #pragma GCC system_header
64 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
66 _GLIBCXX_BEGIN_NAMESPACE_VERSION
73 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
74 pair<_InputIter, _ForwardIter>
75 __uninitialized_copy_n(_InputIter __first, _Size __count,
78 _ForwardIter __cur = __result;
81 for (; __count > 0 ; --__count, ++__first, ++__cur)
83 return pair<_InputIter, _ForwardIter>(__first, __cur);
88 __throw_exception_again;
92 template<
typename _RandomAccessIter,
typename _Size,
typename _ForwardIter>
93 inline pair<_RandomAccessIter, _ForwardIter>
94 __uninitialized_copy_n(_RandomAccessIter __first, _Size __count,
95 _ForwardIter __result,
98 _RandomAccessIter __last = __first + __count;
99 return (pair<_RandomAccessIter, _ForwardIter>
103 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
104 inline pair<_InputIter, _ForwardIter>
105 __uninitialized_copy_n(_InputIter __first, _Size __count,
106 _ForwardIter __result)
107 {
return __gnu_cxx::__uninitialized_copy_n(__first, __count, __result,
120 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
121 inline pair<_InputIter, _ForwardIter>
123 _ForwardIter __result)
124 {
return __gnu_cxx::__uninitialized_copy_n(__first, __count, __result,
130 template<
typename _InputIter,
typename _Size,
typename _ForwardIter,
132 pair<_InputIter, _ForwardIter>
133 __uninitialized_copy_n_a(_InputIter __first, _Size __count,
134 _ForwardIter __result,
137 _ForwardIter __cur = __result;
140 for (; __count > 0 ; --__count, ++__first, ++__cur)
141 __alloc.construct(&*__cur, *__first);
142 return pair<_InputIter, _ForwardIter>(__first, __cur);
147 __throw_exception_again;
151 template<
typename _InputIter,
typename _Size,
typename _ForwardIter,
153 inline pair<_InputIter, _ForwardIter>
154 __uninitialized_copy_n_a(_InputIter __first, _Size __count,
155 _ForwardIter __result,
181 template <
class _ForwardIterator,
class _Tp
182 =
typename std::iterator_traits<_ForwardIterator>::value_type >
193 _GLIBCXX_END_NAMESPACE_VERSION
temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
Requests storage large enough to hold a copy of [first,last).
Struct holding two objects of arbitrary type.
Random-access iterators support a superset of bidirectional iterator operations.
void _Construct(_T1 *__p, _Args &&...__args)
~temporary_buffer()
Destroys objects and frees storage.
_ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
Copies the range [first,last) into result.
The standard allocator, as per [20.4].
void _Destroy(_Tp *__pointer)
iterator_traits< _Iter >::iterator_category __iterator_category(const _Iter &)
pair< _InputIter, _ForwardIter > uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result)
Copies the range [first,last) into result.