14 #include <type_traits>
17 inline namespace _V1 {
18 namespace ext::intel::experimental::detail {
20 template <
template <
int32_t>
class _Type,
class _T>
21 struct _MatchType : std::is_same<_Type<_T::value>, _T> {};
23 template <
template <
int32_t>
class _Type,
class... _T>
struct _GetValue {
24 static constexpr
auto value = _Type<0>::default_value;
27 template <
template <
int32_t>
class _Type,
class _T1,
class... _T>
30 std::conditional_t<_MatchType<_Type, _T1>::value, _T1,
37 template <
typename PropListT,
typename PropKeyT,
typename DefaultPropValT,
40 using type = DefaultPropValT;
42 template <
typename PropListT,
typename PropKeyT,
typename DefaultPropValT>
44 PropListT, PropKeyT, DefaultPropValT,
45 std::enable_if_t<PropListT::template has_property<PropKeyT>()>> {
46 using type = decltype(PropListT::template get_property<PropKeyT>());
decltype(PropListT::template get_property< PropKeyT >()) type
static constexpr auto value