Initial PSTL commit
[lldb.git] / pstl / include / pstl / internal / glue_memory_defs.h
1 // -*- C++ -*-
2 //===-- glue_memory_defs.h ------------------------------------------------===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is dual licensed under the MIT and the University of Illinois Open
7 // Source Licenses. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef __PSTL_glue_memory_defs_H
12 #define __PSTL_glue_memory_defs_H
13
14 #include "execution_defs.h"
15
16 namespace std
17 {
18
19 // [uninitialized.copy]
20
21 template <class _ExecutionPolicy, class _InputIterator, class _ForwardIterator>
22 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
23 uninitialized_copy(_ExecutionPolicy&& __exec, _InputIterator __first, _InputIterator __last, _ForwardIterator __result);
24
25 template <class _ExecutionPolicy, class _InputIterator, class _Size, class _ForwardIterator>
26 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
27 uninitialized_copy_n(_ExecutionPolicy&& __exec, _InputIterator __first, _Size __n, _ForwardIterator __result);
28
29 // [uninitialized.move]
30
31 template <class _ExecutionPolicy, class _InputIterator, class _ForwardIterator>
32 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
33 uninitialized_move(_ExecutionPolicy&& __exec, _InputIterator __first, _InputIterator __last, _ForwardIterator __result);
34
35 template <class _ExecutionPolicy, class _InputIterator, class _Size, class _ForwardIterator>
36 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
37 uninitialized_move_n(_ExecutionPolicy&& __exec, _InputIterator __first, _Size __n, _ForwardIterator __result);
38
39 // [uninitialized.fill]
40
41 template <class _ExecutionPolicy, class _ForwardIterator, class _Tp>
42 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, void>
43 uninitialized_fill(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value);
44
45 template <class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Tp>
46 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
47 uninitialized_fill_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n, const _Tp& __value);
48
49 // [specialized.destroy]
50
51 template <class _ExecutionPolicy, class _ForwardIterator>
52 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, void>
53 destroy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
54
55 template <class _ExecutionPolicy, class _ForwardIterator, class _Size>
56 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
57 destroy_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n);
58
59 // [uninitialized.construct.default]
60
61 template <class _ExecutionPolicy, class _ForwardIterator>
62 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, void>
63 uninitialized_default_construct(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
64
65 template <class _ExecutionPolicy, class _ForwardIterator, class _Size>
66 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
67 uninitialized_default_construct_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n);
68
69 // [uninitialized.construct.value]
70
71 template <class _ExecutionPolicy, class _ForwardIterator>
72 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, void>
73 uninitialized_value_construct(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
74
75 template <class _ExecutionPolicy, class _ForwardIterator, class _Size>
76 __pstl::internal::enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
77 uninitialized_value_construct_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n);
78
79 } //  namespace std
80 #endif /* __PSTL_glue_memory_defs_H */