59 #pragma GCC system_header
64 namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
66 _GLIBCXX_BEGIN_NAMESPACE_VERSION
70 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
72 __uninitialized_copy_n(_InputIter __first, _Size __count,
75 _ForwardIter __cur = __result;
78 for (; __count > 0 ; --__count, ++__first, ++__cur)
85 __throw_exception_again;
89 template<
typename _RandomAccessIter,
typename _Size,
typename _ForwardIter>
91 __uninitialized_copy_n(_RandomAccessIter __first, _Size __count,
92 _ForwardIter __result,
95 _RandomAccessIter __last = __first + __count;
100 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
102 __uninitialized_copy_n(_InputIter __first, _Size __count,
103 _ForwardIter __result)
105 return __gnu_cxx::__uninitialized_copy_n(__first, __count, __result,
119 template<
typename _InputIter,
typename _Size,
typename _ForwardIter>
122 _ForwardIter __result)
124 return __gnu_cxx::__uninitialized_copy_n(__first, __count, __result,
131 template<
typename _InputIter,
typename _Size,
typename _ForwardIter,
134 __uninitialized_copy_n_a(_InputIter __first, _Size __count,
135 _ForwardIter __result,
138 _ForwardIter __cur = __result;
141 for (; __count > 0 ; --__count, ++__first, ++__cur)
142 __alloc.construct(&*__cur, *__first);
148 __throw_exception_again;
152 template<
typename _InputIter,
typename _Size,
typename _ForwardIter,
155 __uninitialized_copy_n_a(_InputIter __first, _Size __count,
156 _ForwardIter __result,
182 template <
class _ForwardIterator,
class _Tp
196 _GLIBCXX_END_NAMESPACE_VERSION
void distance(_InputIterator __first, _InputIterator __last, _Distance &__n)
_ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result)
Copies the range [first,last) into result.
The standard allocator, as per [20.4].
constexpr iterator_traits< _Iter >::iterator_category __iterator_category(const _Iter &)
void _Construct(_Tp *__p, _Args &&...__args)
temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
Requests storage large enough to hold a copy of [first,last).
void _Destroy(_ForwardIterator __first, _ForwardIterator __last, _Allocator &__alloc)
Random-access iterators support a superset of bidirectional iterator operations.
Traits class for iterators.
~temporary_buffer()
Destroys objects and frees storage.
Struct holding two objects of arbitrary type.
std::pair< _InputIter, _ForwardIter > uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result)
Copies the range [first,last) into result.