17 #include <type_traits>
22 inline namespace _V1 {
27 std::bitset<DataLessPropKind::DataLessPropKindSize> DataLessProps)
30 std::bitset<DataLessPropKind::DataLessPropKindSize> DataLessProps,
31 std::vector<std::shared_ptr<PropertyWithDataBase>> PropsWithData)
36 template <
typename... PropsT,
class PropT>
37 typename std::enable_if_t<std::is_base_of_v<DataLessPropertyBase, PropT>>
39 const int PropKind =
static_cast<int>(PropT::getKind());
44 template <
typename... PropsT,
class PropT>
45 typename std::enable_if_t<std::is_base_of_v<PropertyWithDataBase, PropT>>
52 template <
typename... PropsT,
class PropT>
53 typename std::enable_if_t<!std::is_base_of_v<PropertyWithDataBase, PropT> &&
54 !std::is_base_of_v<DataLessPropertyBase, PropT>>
59 template <
typename PropT>
60 typename std::enable_if_t<std::is_base_of_v<DataLessPropertyBase, PropT>,
63 const int PropKind =
static_cast<int>(PropT::getKind());
69 template <
typename PropT>
70 typename std::enable_if_t<std::is_base_of_v<PropertyWithDataBase, PropT>,
73 const int PropKind =
static_cast<int>(PropT::getKind());
74 for (
const std::shared_ptr<PropertyWithDataBase> &Prop :
MPropsWithData)
80 template <
typename PropT>
81 typename std::enable_if_t<std::is_base_of_v<DataLessPropertyBase, PropT>,
88 template <
typename PropT>
89 typename std::enable_if_t<std::is_base_of_v<PropertyWithDataBase, PropT>,
92 const int PropKind =
static_cast<int>(PropT::getKind());
95 "The property is not found");
97 for (
const std::shared_ptr<PropertyWithDataBase> &Prop :
MPropsWithData)
99 return *
static_cast<PropT *
>(Prop.get());
102 "The property is not found");
106 const std::vector<std::shared_ptr<PropertyWithDataBase>> &PropsWithData) {
107 for (
auto &Prop : PropsWithData) {
120 if ((*It)->isSame(Kind))
PropertyListBase(std::bitset< DataLessPropKind::DataLessPropKindSize > DataLessProps)
std::enable_if_t< std::is_base_of_v< PropertyWithDataBase, PropT >, PropT > get_property_helper() const
std::enable_if_t< std::is_base_of_v< DataLessPropertyBase, PropT >, PropT > get_property_helper() const
PropertyListBase(std::bitset< DataLessPropKind::DataLessPropKindSize > DataLessProps, std::vector< std::shared_ptr< PropertyWithDataBase >> PropsWithData)
std::enable_if_t< std::is_base_of_v< PropertyWithDataBase, PropT > > ctorHelper(PropT &Prop, PropsT... Props)
std::vector< std::shared_ptr< PropertyWithDataBase > > MPropsWithData
std::enable_if_t<!std::is_base_of_v< PropertyWithDataBase, PropT > &&!std::is_base_of_v< DataLessPropertyBase, PropT > > ctorHelper(PropT &, PropsT... Props)
void delete_accessor_property_helper(const PropWithDataKind &Kind)
std::enable_if_t< std::is_base_of_v< PropertyWithDataBase, PropT >, bool > has_property_helper() const noexcept
std::enable_if_t< std::is_base_of_v< DataLessPropertyBase, PropT >, bool > has_property_helper() const noexcept
std::enable_if_t< std::is_base_of_v< DataLessPropertyBase, PropT > > ctorHelper(PropT &, PropsT... Props)
void add_or_replace_accessor_properties_helper(const std::vector< std::shared_ptr< PropertyWithDataBase >> &PropsWithData)
std::bitset< DataLessPropKind::DataLessPropKindSize > MDataLessProps
@ LastKnownDataLessPropKind
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