#ifndef _PSTL_EXECUTION_POLICY_DEFS_H
#define _PSTL_EXECUTION_POLICY_DEFS_H
#include <type_traits>
#include "pstl_config.h"
_PSTL_HIDE_FROM_ABI_PUSH
namespace __pstl
{
namespace execution
{
inline namespace v1
{
class sequenced_policy
{ … };
class parallel_policy
{ … };
class parallel_unsequenced_policy
{ … };
class unsequenced_policy
{ … };
constexpr sequenced_policy seq{ … };
constexpr parallel_policy par{ … };
constexpr parallel_unsequenced_policy par_unseq{ … };
constexpr unsequenced_policy unseq{ … };
template <class T>
struct is_execution_policy : std::false_type
{ … };
template <>
struct is_execution_policy<__pstl::execution::sequenced_policy> : std::true_type
{ … };
template <>
struct is_execution_policy<__pstl::execution::parallel_policy> : std::true_type
{ … };
template <>
struct is_execution_policy<__pstl::execution::parallel_unsequenced_policy> : std::true_type
{ … };
template <>
struct is_execution_policy<__pstl::execution::unsequenced_policy> : std::true_type
{ … };
#if defined(_PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT)
is_execution_policy_v;
#endif
}
}
namespace __internal
{
__enable_if_execution_policy;
template <class _IsVector>
struct __serial_tag;
template <class _IsVector>
struct __parallel_tag;
}
}
_PSTL_HIDE_FROM_ABI_POP
#endif