66namespace sycl {
77inline namespace _V1 {
88namespace ext ::oneapi::experimental {
9- struct indirectly_callable_key {
9+ struct indirectly_callable_key
10+ : detail::compile_time_property_key<detail::PropKind::IndirectlyCallable> {
1011 template <typename Set>
1112 using value_t =
1213 sycl::ext::oneapi::experimental::property_value<indirectly_callable_key,
@@ -18,7 +19,8 @@ inline constexpr indirectly_callable_key::value_t<void> indirectly_callable;
1819template <typename Set>
1920inline constexpr indirectly_callable_key::value_t <Set> indirectly_callable_in;
2021
21- struct calls_indirectly_key {
22+ struct calls_indirectly_key
23+ : detail::compile_time_property_key<detail::PropKind::CallsIndirectly> {
2224 template <typename ... SetIds>
2325 using value_t =
2426 sycl::ext::oneapi::experimental::property_value<calls_indirectly_key,
@@ -31,24 +33,8 @@ template <typename... SetIds>
3133inline constexpr calls_indirectly_key::value_t <SetIds...>
3234 assume_indirect_calls_to;
3335
34- template <> struct is_property_key <indirectly_callable_key> : std::true_type {};
35- template <> struct is_property_key <calls_indirectly_key> : std::true_type {};
36-
3736namespace detail {
3837
39- template <>
40- struct IsCompileTimeProperty <indirectly_callable_key> : std::true_type {};
41- template <>
42- struct IsCompileTimeProperty <calls_indirectly_key> : std::true_type {};
43-
44- template <> struct PropertyToKind <indirectly_callable_key> {
45- static constexpr PropKind Kind = PropKind::IndirectlyCallable;
46- };
47-
48- template <> struct PropertyToKind <calls_indirectly_key> {
49- static constexpr PropKind Kind = PropKind::CallsIndirectly;
50- };
51-
5238template <typename Set>
5339struct PropertyMetaInfo <indirectly_callable_key::value_t <Set>> {
5440 static constexpr const char *name = " indirectly-callable" ;
0 commit comments