19 #include <type_traits>
23 inline namespace _V1 {
24 namespace ext::oneapi {
34 template <
typename... Tail>
struct AllProperties : std::true_type {};
35 template <
typename T,
typename... Tail>
36 struct AllProperties<T, Tail...>
37 : std::conditional_t<is_property<T>::value, AllProperties<Tail...>,
41 template <
typename... PropsT,
typename =
typename std::enable_if_t<
42 AllProperties<PropsT...>::value>>
48 if (!has_property<PropT>())
49 throw sycl::invalid_object_error(
"The property is not found",
50 PI_ERROR_INVALID_VALUE);
52 return get_property_helper<PropT>();
56 return has_property_helper<PropT>();
70 std::bitset<detail::DataLessPropKind::DataLessPropKindSize> DataLessProps,
71 std::vector<std::shared_ptr<detail::PropertyWithDataBase>> PropsWithData)
74 template <
typename... PropsT>