diff --git a/sycl/include/sycl/ext/oneapi/properties/properties.hpp b/sycl/include/sycl/ext/oneapi/properties/properties.hpp index 30a4835f826b0..ccd44f441a7da 100644 --- a/sycl/include/sycl/ext/oneapi/properties/properties.hpp +++ b/sycl/include/sycl/ext/oneapi/properties/properties.hpp @@ -283,8 +283,19 @@ struct ValueOrDefault< } }; -// all_props_are_keys_of +// helper: check_all_props_are_keys_of +template constexpr bool check_all_props_are_keys_of() { + return true; +} + +template +constexpr bool check_all_props_are_keys_of() { + return ext::oneapi::experimental::is_property_key_of::value && + check_all_props_are_keys_of(); +} +// all_props_are_keys_of template struct all_props_are_keys_of : std::false_type {}; @@ -300,13 +311,10 @@ struct all_props_are_keys_of< ext::oneapi::experimental::is_property_key_of::value> { }; -template +template struct all_props_are_keys_of< - SyclT, ext::oneapi::experimental::detail::properties_t> - : std::bool_constant< - ext::oneapi::experimental::is_property_key_of::value && - all_props_are_keys_of>::value> {}; + SyclT, ext::oneapi::experimental::detail::properties_t> + : std::bool_constant()> {}; } // namespace detail } // namespace ext::oneapi::experimental