1ebc05b93SNikolas Klauser //===----------------------------------------------------------------------===// 2ebc05b93SNikolas Klauser // 3ebc05b93SNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4ebc05b93SNikolas Klauser // See https://llvm.org/LICENSE.txt for license information. 5ebc05b93SNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6ebc05b93SNikolas Klauser // 7ebc05b93SNikolas Klauser //===----------------------------------------------------------------------===// 8ebc05b93SNikolas Klauser 9ebc05b93SNikolas Klauser // template<class T> struct is_execution_policy; 10ebc05b93SNikolas Klauser // template<class T> constexpr bool is_execution_policy_v = is_execution_policy<T>::value; 11ebc05b93SNikolas Klauser 12ebc05b93SNikolas Klauser // UNSUPPORTED: c++03, c++11, c++14 13ebc05b93SNikolas Klauser 14*e7e37118SNikolas Klauser // UNSUPPORTED: libcpp-has-no-incomplete-pstl 15ebc05b93SNikolas Klauser 16ebc05b93SNikolas Klauser #include <execution> 17ebc05b93SNikolas Klauser 18ebc05b93SNikolas Klauser #include "test_macros.h" 19ebc05b93SNikolas Klauser 20ebc05b93SNikolas Klauser static_assert(std::is_execution_policy<std::execution::sequenced_policy>::value); 21ebc05b93SNikolas Klauser static_assert(std::is_execution_policy_v<std::execution::sequenced_policy>); 22ebc05b93SNikolas Klauser static_assert(std::is_execution_policy<std::execution::parallel_policy>::value); 23ebc05b93SNikolas Klauser static_assert(std::is_execution_policy_v<std::execution::parallel_policy>); 24ebc05b93SNikolas Klauser static_assert(std::is_execution_policy<std::execution::parallel_unsequenced_policy>::value); 25ebc05b93SNikolas Klauser static_assert(std::is_execution_policy_v<std::execution::parallel_unsequenced_policy>); 26ebc05b93SNikolas Klauser 27ebc05b93SNikolas Klauser #if TEST_STD_VER >= 20 28ebc05b93SNikolas Klauser static_assert(std::is_execution_policy<std::execution::unsequenced_policy>::value); 29ebc05b93SNikolas Klauser static_assert(std::is_execution_policy_v<std::execution::unsequenced_policy>); 30ebc05b93SNikolas Klauser #endif 31