//===----------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // class sequenced_policy; // class parallel_policy; // class parallel_unsequenced_policy; // class unsequenced_policy; // since C++20 // // inline constexpr sequenced_policy seq = implementation-defined; // inline constexpr parallel_policy par = implementation-defined; // inline constexpr parallel_unsequenced_policy par_unseq = implementation-defined; // inline constexpr unsequenced_policy unseq = implementation-defined; // since C++20 // UNSUPPORTED: c++03, c++11, c++14 // UNSUPPORTED: libcpp-has-no-incomplete-pstl #include #include #include "test_macros.h" template using remove_cvref_t = std::remove_cv_t>; template TEST_NOINLINE void use(T&) {} static_assert(std::is_same_v, std::execution::sequenced_policy>); static_assert(std::is_same_v, std::execution::parallel_policy>); static_assert( std::is_same_v, std::execution::parallel_unsequenced_policy>); #if TEST_STD_VER >= 20 static_assert(std::is_same_v, std::execution::unsequenced_policy>); #endif int main(int, char**) { use(std::execution::seq); use(std::execution::par); use(std::execution::par_unseq); #if TEST_STD_VER >= 20 use(std::execution::unseq); #endif return 0; }