diff --git a/libcxx/include/__pstl/internal/execution_defs.h b/libcxx/include/__pstl/internal/execution_defs.h --- a/libcxx/include/__pstl/internal/execution_defs.h +++ b/libcxx/include/__pstl/internal/execution_defs.h @@ -38,7 +38,7 @@ constexpr unsequenced_policy unseq{}; // 2.3, Execution policy type trait -template +template struct is_execution_policy : std::false_type {}; template <> @@ -51,18 +51,18 @@ struct is_execution_policy<__pstl::execution::unsequenced_policy> : std::true_type {}; #if defined(_PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT) -template -constexpr bool is_execution_policy_v = __pstl::execution::is_execution_policy::value; +template +constexpr bool is_execution_policy_v = __pstl::execution::is_execution_policy<_Tp>::value; #endif } // namespace v1 } // namespace execution namespace __internal { -template +template using __enable_if_execution_policy = - typename std::enable_if<__pstl::execution::is_execution_policy::type>::value, - T>::type; + typename std::enable_if<__pstl::execution::is_execution_policy::type>::value, + _Tp>::type; template struct __serial_tag; diff --git a/libcxx/test/libcxx/nasty_macros.compile.pass.cpp b/libcxx/test/libcxx/nasty_macros.compile.pass.cpp --- a/libcxx/test/libcxx/nasty_macros.compile.pass.cpp +++ b/libcxx/test/libcxx/nasty_macros.compile.pass.cpp @@ -9,9 +9,6 @@ // Test that headers are not tripped up by the surrounding code defining various // alphabetic macros. -// FIXME: This should pass with the PSTL enabled -// XFAIL: with-pstl - // Prevent from generating deprecated warnings for this test. #if defined(__DEPRECATED) # undef __DEPRECATED