2 //===-- glue_memory_defs.h ------------------------------------------------===//
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 //===----------------------------------------------------------------------===//
10 #ifndef _PSTL_GLUE_MEMORY_DEFS_H
11 #define _PSTL_GLUE_MEMORY_DEFS_H
13 #include "execution_defs.h"
18 // [uninitialized.copy]
20 template <class _ExecutionPolicy
, class _InputIterator
, class _ForwardIterator
>
21 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
22 uninitialized_copy(_ExecutionPolicy
&& __exec
, _InputIterator __first
, _InputIterator __last
, _ForwardIterator __result
);
24 template <class _ExecutionPolicy
, class _InputIterator
, class _Size
, class _ForwardIterator
>
25 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
26 uninitialized_copy_n(_ExecutionPolicy
&& __exec
, _InputIterator __first
, _Size __n
, _ForwardIterator __result
);
28 // [uninitialized.move]
30 template <class _ExecutionPolicy
, class _InputIterator
, class _ForwardIterator
>
31 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
32 uninitialized_move(_ExecutionPolicy
&& __exec
, _InputIterator __first
, _InputIterator __last
, _ForwardIterator __result
);
34 template <class _ExecutionPolicy
, class _InputIterator
, class _Size
, class _ForwardIterator
>
35 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
36 uninitialized_move_n(_ExecutionPolicy
&& __exec
, _InputIterator __first
, _Size __n
, _ForwardIterator __result
);
38 // [uninitialized.fill]
40 template <class _ExecutionPolicy
, class _ForwardIterator
, class _Tp
>
41 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, void>
42 uninitialized_fill(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _ForwardIterator __last
, const _Tp
& __value
);
44 template <class _ExecutionPolicy
, class _ForwardIterator
, class _Size
, class _Tp
>
45 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
46 uninitialized_fill_n(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _Size __n
, const _Tp
& __value
);
48 // [specialized.destroy]
50 template <class _ExecutionPolicy
, class _ForwardIterator
>
51 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, void>
52 destroy(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _ForwardIterator __last
);
54 template <class _ExecutionPolicy
, class _ForwardIterator
, class _Size
>
55 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
56 destroy_n(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _Size __n
);
58 // [uninitialized.construct.default]
60 template <class _ExecutionPolicy
, class _ForwardIterator
>
61 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, void>
62 uninitialized_default_construct(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _ForwardIterator __last
);
64 template <class _ExecutionPolicy
, class _ForwardIterator
, class _Size
>
65 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
66 uninitialized_default_construct_n(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _Size __n
);
68 // [uninitialized.construct.value]
70 template <class _ExecutionPolicy
, class _ForwardIterator
>
71 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, void>
72 uninitialized_value_construct(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _ForwardIterator __last
);
74 template <class _ExecutionPolicy
, class _ForwardIterator
, class _Size
>
75 __pstl::__internal::__enable_if_execution_policy
<_ExecutionPolicy
, _ForwardIterator
>
76 uninitialized_value_construct_n(_ExecutionPolicy
&& __exec
, _ForwardIterator __first
, _Size __n
);
79 #endif /* _PSTL_GLUE_MEMORY_DEFS_H */