6
6
namespace sycl {
7
7
inline namespace _V1 {
8
8
namespace ext ::oneapi::experimental {
9
- struct indirectly_callable_key {
9
+ struct indirectly_callable_key
10
+ : detail::compile_time_property_key<detail::PropKind::IndirectlyCallable> {
10
11
template <typename Set>
11
12
using value_t =
12
13
sycl::ext::oneapi::experimental::property_value<indirectly_callable_key,
@@ -18,7 +19,8 @@ inline constexpr indirectly_callable_key::value_t<void> indirectly_callable;
18
19
template <typename Set>
19
20
inline constexpr indirectly_callable_key::value_t <Set> indirectly_callable_in;
20
21
21
- struct calls_indirectly_key {
22
+ struct calls_indirectly_key
23
+ : detail::compile_time_property_key<detail::PropKind::CallsIndirectly> {
22
24
template <typename ... SetIds>
23
25
using value_t =
24
26
sycl::ext::oneapi::experimental::property_value<calls_indirectly_key,
@@ -31,24 +33,8 @@ template <typename... SetIds>
31
33
inline constexpr calls_indirectly_key::value_t <SetIds...>
32
34
assume_indirect_calls_to;
33
35
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
-
37
36
namespace detail {
38
37
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
-
52
38
template <typename Set>
53
39
struct PropertyMetaInfo <indirectly_callable_key::value_t <Set>> {
54
40
static constexpr const char *name = " indirectly-callable" ;
0 commit comments