18 #include <type_traits>
22 inline namespace _V1 {
23 namespace ext::oneapi {
33 template <
typename... Tail>
struct AllProperties : std::true_type {};
34 template <
typename T,
typename... Tail>
35 struct AllProperties<T, Tail...>
36 : std::conditional_t<is_property<T>::value, AllProperties<Tail...>,
40 template <
typename... PropsT,
typename =
typename std::enable_if_t<
41 AllProperties<PropsT...>::value>>
47 if (!has_property<PropT>())
49 "The property is not found");
51 return get_property_helper<PropT>();
55 return has_property_helper<PropT>();
69 std::bitset<detail::DataLessPropKind::DataLessPropKindSize> DataLessProps,
70 std::vector<std::shared_ptr<detail::PropertyWithDataBase>> PropsWithData)
73 template <
typename... PropsT>
PropertyListBase(std::bitset< DataLessPropKind::DataLessPropKindSize > DataLessProps)
std::vector< std::shared_ptr< PropertyWithDataBase > > MPropsWithData
void delete_accessor_property_helper(const PropWithDataKind &Kind)
void add_or_replace_accessor_properties_helper(const std::vector< std::shared_ptr< PropertyWithDataBase >> &PropsWithData)
Objects of the property_list class are containers for the SYCL properties.
bool has_property() const noexcept
void delete_accessor_property(const sycl::detail::PropWithDataKind &Kind)
PropT get_property() const
void add_or_replace_accessor_properties(const property_list &PropertyList)
property_list(PropsT... Props)
std::error_code make_error_code(sycl::errc E) noexcept
Constructs an error code using e and sycl_category()
_Abi const simd< _Tp, _Abi > & noexcept