14 #include <type_traits>
21 #define __SYCL_ASPECT_DEPRECATED_ALIAS(ASPECT, ID, MESSAGE)
28 #define __SYCL_ASPECT(ASPECT, ASPECT_VAL) \
30 struct all_devices_have<aspect::ASPECT> \
31 : std::bool_constant<__SYCL_ALL_DEVICES_HAVE_##ASPECT##__> {};
33 #include <sycl/info/aspects.def>
37 #define __SYCL_ASPECT_DEPRECATED(ASPECT, ASPECT_VAL, MSG) \
39 struct all_devices_have<aspect::ASPECT> \
40 : std::bool_constant<__SYCL_ALL_DEVICES_HAVE_##ASPECT##__> {};
41 #include <sycl/info/aspects_deprecated.def>
43 #undef __SYCL_ASPECT_DEPRECATED
45 #ifdef __SYCL_ANY_DEVICE_HAS_ANY_ASPECT__
47 template <aspect Aspect>
struct any_device_has : std::true_type {};
53 #define __SYCL_ASPECT(ASPECT, ASPECT_VAL) \
55 struct any_device_has<aspect::ASPECT> \
56 : std::bool_constant<__SYCL_ANY_DEVICE_HAS_##ASPECT##__> {};
58 #include <sycl/info/aspects.def>
62 #define __SYCL_ASPECT_DEPRECATED(ASPECT, ASPECT_VAL, MSG) \
64 struct any_device_has<aspect::ASPECT> \
65 : std::bool_constant<__SYCL_ANY_DEVICE_HAS_##ASPECT##__> {};
66 #include <sycl/info/aspects_deprecated.def>
68 #undef __SYCL_ASPECT_DEPRECATED
71 template <aspect Aspect>
73 template <aspect Aspect>
77 #undef __SYCL_ASPECT_DEPRECATED_ALIAS
constexpr bool all_devices_have_v
constexpr bool any_device_has_v