30#ifndef _STLP_INTERNAL_UNINITIALIZED_H
31#define _STLP_INTERNAL_UNINITIALIZED_H
33#ifndef _STLP_INTERNAL_CSTRING
37#ifndef _STLP_INTERNAL_ALGOBASE_H
41#ifndef _STLP_INTERNAL_CONSTRUCT_H
51template <
class _InputIter,
class _OutputIter,
class _Distance>
53 _OutputIter __result, _Distance*) {
54 _OutputIter __cur = __result;
56 for ( ; __first !=
__last; ++__first, ++__cur)
64template <
class _InputIter,
class _OutputIter,
class _Distance>
69#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
70template <
class _InputIter,
class _OutputIter,
class _Distance>
71inline _OutputIter
__ucopy(_InputIter __first, _InputIter
__last,
75template <
class _InputIter,
class _OutputIter,
class _Distance>
76inline _OutputIter
__ucopy(_InputIter __first, _InputIter
__last,
81template <
class _RandomAccessIter,
class _OutputIter,
class _Distance>
82inline _OutputIter
__ucopy(_RandomAccessIter __first, _RandomAccessIter
__last,
84 _OutputIter __cur = __result;
98template <
class _RandomAccessIter,
class _OutputIter>
99inline _OutputIter
__ucopy(_RandomAccessIter __first, _RandomAccessIter
__last, _OutputIter __result)
105 return (
__last == __first) ? __result :
106 ((
char*)
memcpy(__result, __first, ((
const char*)
__last - (
const char*)__first))) +
107 ((
const char*)
__last - (
const char*)__first);
110template <
class _InputIter,
class _OutputIter>
115template <
class _InputIter,
class _OutputIter>
123template <
class _InputIter,
class _OutputIter>
131template <
class _InputIter,
class _OutputIter>
141template <
class _InputIter,
class _ForwardIter>
150# if defined (_STLP_HAS_WCHAR_T)
159template <
class _InputIter,
class _Size,
class _ForwardIter>
164 _ForwardIter __cur = __result;
166 for ( ; __count > 0 ; --__count, ++__first, ++__cur)
170 _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur))
174# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
175template <
class _InputIter,
class _Size,
class _ForwardIterator>
178 _ForwardIterator __result,
182template <
class _InputIter,
class _Size,
class _ForwardIterator>
185 _ForwardIterator __result,
190template <
class _RandomAccessIter,
class _Size,
class _ForwardIter>
194 _RandomAccessIter
__last = __first + __count;
199template <
class _InputIter,
class _Size,
class _ForwardIter>
204#if !defined (_STLP_NO_EXTENSIONS)
208template <
class _InputIter,
class _Size,
class _ForwardIter>
217template <
class _ForwardIter,
class _Tp,
class _Distance>
218inline void __ufill(_ForwardIter __first, _ForwardIter
__last,
const _Tp& __x, _Distance*) {
219 _ForwardIter __cur = __first;
221 for ( ; __cur !=
__last; ++__cur)
227template <
class _ForwardIter,
class _Tp,
class _Distance>
232#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
233template <
class _ForwardIter,
class _Tp,
class _Distance>
234inline void __ufill(_ForwardIter __first, _ForwardIter
__last,
238template <
class _ForwardIter,
class _Tp,
class _Distance>
239inline void __ufill(_ForwardIter __first, _ForwardIter
__last,
244template <
class _ForwardIter,
class _Tp,
class _Distance>
247 _ForwardIter __cur = __first;
257template <
class _ForwardIter,
class _Tp>
266 const unsigned char&
__val) {
267 unsigned char __tmp =
__val;
270#if !defined (_STLP_NO_SIGNED_BUILTINS)
272 const signed char&
__val) {
273 signed char __tmp =
__val;
284template <
class _ForwardIter,
class _Size,
class _Tp>
286 _ForwardIter __cur = __first;
288 for ( ;
__n > 0; --
__n, ++__cur)
295template <
class _ForwardIter,
class _Size,
class _Tp>
300#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG)
301template <
class _ForwardIter,
class _Size,
class _Tp>
306template <
class _ForwardIter,
class _Size,
class _Tp>
312template <
class _ForwardIter,
class _Size,
class _Tp>
319template <
class _ForwardIter,
class _Size,
class _Tp>
328template <
class _ForwardIter,
class _Size,
class _Tp>
333template <
class _ForwardIter,
class _Size,
class _Tp>
336 memset((
unsigned char*)__first, 0,
__n *
sizeof(_Tp));
337 return __first +
__n;
340template <
class _ForwardIter,
class _Size,
class _Tp>
343{
return __first +
__n; }
345template <
class _ForwardIter,
class _Size,
class _Tp>
350template <
class _ForwardIter,
class _Size,
class _Tp>
356template <
class _ForwardIter,
class _Size,
class _Tp>
371template <
class _InputIter1,
class _InputIter2,
class _ForwardIter>
374 _InputIter2 __first2, _InputIter2 __last2,
375 _ForwardIter __result) {
380 _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __new_result))
387template <
class _ForwardIter,
class _Tp,
class _InputIter>
390 _InputIter __first, _InputIter
__last) {
395 _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __mid))
402template <
class _Iter,
class _Tp>
410 _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first2, __mid2))
416template <
class _InputIter,
class _ForwardIter,
class _TrivialUCpy>
422template <
class _InputIter,
class _ForwardIter,
class _TrivialUCpy>
430 ++__first; ++__result;
#define input_iterator_tag
#define random_access_iterator_tag
_STLP_INLINE_LOOP _InputIter __last
_STLP_INLINE_LOOP _InputIter const _Tp & __val
void _Param_Construct(_T1 *__p, const _T2 &__val)
void _Move_Construct(_T1 *__p, _T2 &__val)
#define _STLP_VALUE_TYPE(_It, _Tp)
#define _STLP_ITERATOR_CATEGORY(_It, _Tp)
#define _STLP_DISTANCE_TYPE(_It, _Tp)
void * __ucopy_trivial(const void *__first, const void *__last, void *__result)
_OutputIter __ucopy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result, const __false_type &)
_ForwardIter __uninitialized_init(_ForwardIter __first, _Size __n, const _Tp &__val)
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp &__x)
_ForwardIter __uinit_aux(_ForwardIter __first, _Size __n, const _Tp &, const __true_type &)
_STLP_MOVE_TO_STD_NAMESPACE void uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp &__x)
_STLP_MOVE_TO_PRIV_NAMESPACE void __ufill(_ForwardIter __first, _ForwardIter __last, const _Tp &__x, _Distance *)
_ForwardIter __uinit_aux_aux(_ForwardIter __first, _Size __n, const _Tp &__val, const __false_type &)
_STLP_BEGIN_NAMESPACE _STLP_MOVE_TO_PRIV_NAMESPACE _OutputIter __ucopy(_InputIter __first, _InputIter __last, _OutputIter __result, _Distance *)
_STLP_MOVE_TO_STD_NAMESPACE _ForwardIter uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result)
_STLP_MOVE_TO_STD_NAMESPACE pair< _InputIter, _ForwardIter > uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result)
_OutputIter __ucopy_aux(_InputIter __first, _InputIter __last, _OutputIter __result, const __true_type &)
void __uninitialized_copy_fill(_Iter __first1, _Iter __last1, _Iter __first2, _Iter __last2, const _Tp &__x)
_STLP_MOVE_TO_STD_NAMESPACE void uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)
_STLP_MOVE_TO_PRIV_NAMESPACE _ForwardIter __uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2, _ForwardIter __result)
_ForwardIter __uninitialized_move(_InputIter __first, _InputIter __last, _ForwardIter __result, _TrivialUCpy __trivial_ucpy, const __false_type &)
_ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp &__x)
_ForwardIter __uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, const _Tp &__x, _InputIter __first, _InputIter __last)
_STLP_MOVE_TO_PRIV_NAMESPACE _STLP_INLINE_LOOP pair< _InputIter, _ForwardIter > __ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result, const input_iterator_tag &)
__kernel_ptrdiff_t ptrdiff_t
#define _STLP_UNWIND(action)
#define _STLP_RET_AFTER_THROW(data)
#define _STLP_INLINE_LOOP
#define _STLP_MOVE_TO_STD_NAMESPACE
#define __STATIC_CAST(__x, __y)
#define _STLP_BEGIN_NAMESPACE
#define _STLP_END_NAMESPACE
#define _STLP_MOVE_TO_PRIV_NAMESPACE
_Check_return_ _Ret_maybenull_ _In_ size_t _In_ size_t _Size
#define memcpy(s1, s2, n)
_DefaultZeroValueQuestion< _Tp > _HasDefaultZeroValue(_Tp *)
_TrivialInit< _Tp > _UseTrivialInit(_Tp *)
_TrivialUCopy< _Src, _Dst > _UseTrivialUCopy(_Src *, _Dst *)