1  // -*- C++ -*-
       2  //===-- glue_execution_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_EXECUTION_DEFS_H
      11  #define _PSTL_GLUE_EXECUTION_DEFS_H
      12  
      13  #include <type_traits>
      14  
      15  #include "execution_defs.h"
      16  
      17  namespace std
      18  {
      19  // Type trait
      20  using __pstl::execution::is_execution_policy;
      21  #if _PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT
      22  #    if __INTEL_COMPILER
      23  template <class T>
      24  constexpr bool is_execution_policy_v = is_execution_policy<T>::value;
      25  #    else
      26  using __pstl::execution::is_execution_policy_v;
      27  #    endif
      28  #endif
      29  
      30  namespace execution
      31  {
      32  // Standard C++ policy classes
      33  using __pstl::execution::parallel_policy;
      34  using __pstl::execution::parallel_unsequenced_policy;
      35  using __pstl::execution::sequenced_policy;
      36  
      37  // Standard predefined policy instances
      38  using __pstl::execution::par;
      39  using __pstl::execution::par_unseq;
      40  using __pstl::execution::seq;
      41  
      42  // Implementation-defined names
      43  // Unsequenced policy is not yet standard, but for consistency
      44  // we include it into namespace std::execution as well
      45  using __pstl::execution::unseq;
      46  using __pstl::execution::unsequenced_policy;
      47  } // namespace execution
      48  } // namespace std
      49  
      50  #include "algorithm_impl.h"
      51  #include "numeric_impl.h"
      52  #include "parallel_backend.h"
      53  
      54  #endif /* _PSTL_GLUE_EXECUTION_DEFS_H */