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