1  // -*- C++ -*-
       2  //===-- glue_memory_defs.h ------------------------------------------------===//
       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  
      15  namespace std
      16  {
      17  
      18  // [uninitialized.copy]
      19  
      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);
      23  
      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);
      27  
      28  // [uninitialized.move]
      29  
      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);
      33  
      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);
      37  
      38  // [uninitialized.fill]
      39  
      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);
      43  
      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);
      47  
      48  // [specialized.destroy]
      49  
      50  template <class _ExecutionPolicy, class _ForwardIterator>
      51  __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
      52  destroy(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last);
      53  
      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);
      57  
      58  // [uninitialized.construct.default]
      59  
      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);
      63  
      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);
      67  
      68  // [uninitialized.construct.value]
      69  
      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);
      73  
      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);
      77  
      78  } //  namespace std
      79  #endif /* _PSTL_GLUE_MEMORY_DEFS_H */