xref: /llvm-project/pstl/include/pstl/internal/glue_memory_defs.h (revision 1b6d6e595b5e27566579c03923667aaab58bd3cd)
1 // -*- C++ -*-
2 //===----------------------------------------------------------------------===//
3 //
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
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef _PSTL_GLUE_MEMORY_DEFS_H
11 #define _PSTL_GLUE_MEMORY_DEFS_H
12 
13 #include "execution_defs.h"
14 #include "pstl_config.h"
15 
16 _PSTL_HIDE_FROM_ABI_PUSH
17 
18 namespace std
19 {
20 
21 // [uninitialized.copy]
22 
23 template <class _ExecutionPolicy, class _InputIterator, class _ForwardIterator>
24 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
25 uninitialized_copy(_ExecutionPolicy&& __exec, _InputIterator __first, _InputIterator __last, _ForwardIterator __result);
26 
27 template <class _ExecutionPolicy, class _InputIterator, class _Size, class _ForwardIterator>
28 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
29 uninitialized_copy_n(_ExecutionPolicy&& __exec, _InputIterator __first, _Size __n, _ForwardIterator __result);
30 
31 // [uninitialized.move]
32 
33 template <class _ExecutionPolicy, class _InputIterator, class _ForwardIterator>
34 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
35 uninitialized_move(_ExecutionPolicy&& __exec, _InputIterator __first, _InputIterator __last, _ForwardIterator __result);
36 
37 template <class _ExecutionPolicy, class _InputIterator, class _Size, class _ForwardIterator>
38 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
39 uninitialized_move_n(_ExecutionPolicy&& __exec, _InputIterator __first, _Size __n, _ForwardIterator __result);
40 
41 // [uninitialized.fill]
42 
43 template <class _ExecutionPolicy, class _ForwardIterator, class _Tp>
44 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
45 uninitialized_fill(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value);
46 
47 template <class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Tp>
48 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
49 uninitialized_fill_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n, const _Tp& __value);
50 
51 // [specialized.destroy]
52 
53 template <class _ExecutionPolicy, class _ForwardIterator>
54 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
55 destroy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
56 
57 template <class _ExecutionPolicy, class _ForwardIterator, class _Size>
58 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
59 destroy_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n);
60 
61 // [uninitialized.construct.default]
62 
63 template <class _ExecutionPolicy, class _ForwardIterator>
64 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
65 uninitialized_default_construct(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
66 
67 template <class _ExecutionPolicy, class _ForwardIterator, class _Size>
68 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
69 uninitialized_default_construct_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n);
70 
71 // [uninitialized.construct.value]
72 
73 template <class _ExecutionPolicy, class _ForwardIterator>
74 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
75 uninitialized_value_construct(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
76 
77 template <class _ExecutionPolicy, class _ForwardIterator, class _Size>
78 __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
79 uninitialized_value_construct_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n);
80 
81 } //  namespace std
82 
83 _PSTL_HIDE_FROM_ABI_POP
84 
85 #endif /* _PSTL_GLUE_MEMORY_DEFS_H */
86