@@ -176,6 +176,9 @@ inline constexpr bool properties_are_sorted = []() constexpr {
176176 return true ;
177177 }
178178}();
179+
180+ template <typename property_key_t >
181+ inline constexpr property_key_tag<property_key_t > key{};
179182} // namespace detail
180183
181184// Empty property list.
@@ -268,20 +271,20 @@ class __SYCL_EBO properties<
268271 template <typename property_key_t >
269272 static constexpr auto get_property () -> std::enable_if_t<
270273 std::is_empty_v<decltype(std::declval<properties>().get_property_impl(
271- detail::property_key_tag <property_key_t >{} ))>,
274+ detail::key <property_key_t >))>,
272275 decltype(std::declval<properties>().get_property_impl(
273- detail::property_key_tag <property_key_t >{} ))> {
276+ detail::key <property_key_t >))> {
274277 return decltype (std::declval<properties>().get_property_impl (
275- detail::property_key_tag <property_key_t >{} )){};
278+ detail::key <property_key_t >)){};
276279 }
277280
278281 template <typename property_key_t >
279282 constexpr auto get_property () const -> std::enable_if_t<
280283 !std::is_empty_v<decltype(std::declval<properties>().get_property_impl(
281- detail::property_key_tag <property_key_t >{} ))>,
284+ detail::key <property_key_t >))>,
282285 decltype(std::declval<properties>().get_property_impl(
283- detail::property_key_tag <property_key_t >{} ))> {
284- return get_property_impl (detail::property_key_tag <property_key_t >{} );
286+ detail::key <property_key_t >))> {
287+ return get_property_impl (detail::key <property_key_t >);
285288 }
286289
287290 // TODO: Do we need separate `static` overload if we decide to keep this
0 commit comments