6 #ifndef SWIFT_MISC_INHERITANCE_TRAITS_H
7 #define SWIFT_MISC_INHERITANCE_TRAITS_H
16 class CPropertyIndexRef;
21 template <
typename T,
typename = std::
void_t<>>
28 struct TBaseOf<T, std::void_t<typename T::base_type>>
30 using type =
typename T::base_type;
54 template <
typename T,
typename = std::
void_t<>>
61 struct TIndexBaseOf<T, std::void_t<decltype(std::declval<typename T::base_type>().propertyByIndex(
62 std::declval<CPropertyIndexRef>()))>>
64 using type =
typename T::base_type;
Free functions in swift::misc.
typename TIndexBaseOf< T >::type TIndexBaseOfT
Alias for typename TIndexBaseOf<T>::type.
typename TBaseOf< T >::type TBaseOfT
Alias for typename TBaseOf<T>::type.
typename TMetaBaseOf< T >::type TMetaBaseOfT
Alias for typename TMetaBaseOf<T>::type.
constexpr bool THasMetaBaseV
True if T has a member typedef base_type which is a registered metatype.
If T has a member typedef base_type, this trait will obtain it, otherwise void.
If T has a member typedef base_type which has a member propertyByIndex, this trait will obtain it,...