6 #ifndef SWIFT_MISC_MIXIN_MIXINMETATYPE_H
7 #define SWIFT_MISC_MIXIN_MIXINMETATYPE_H
27 template <
class Derived>
44 bool isA(
int metaTypeId)
const;
47 const Derived *derived()
const;
50 template <
typename Base2>
51 static bool baseIsA(
const Base2 *base,
int metaTypeId);
52 static bool baseIsA(
const void *,
int);
55 template <
class Derived>
58 private_ns::MetaTypeHelper<Derived>::maybeRegisterMetaType();
61 template <
class Derived>
64 return private_ns::MetaTypeHelper<Derived>::maybeGetMetaTypeId();
67 template <
class Derived>
70 return QMetaType::typeName(getMetaTypeId());
73 template <
class Derived>
76 if (metaTypeId == QMetaType::UnknownType) {
return false; }
77 if (metaTypeId == getMetaTypeId()) {
return true; }
81 template <
class Derived>
84 return static_cast<const Derived *
>(
this);
87 template <
class Derived>
88 Derived *MetaType<Derived>::derived()
90 return static_cast<Derived *
>(
this);
93 template <
class Derived>
94 template <
typename Base2>
95 bool MetaType<Derived>::baseIsA(
const Base2 *base,
int metaTypeId)
97 return base->
isA(metaTypeId);
100 template <
class Derived>
101 bool MetaType<Derived>::baseIsA(
const void *,
int)
111 #define SWIFT_MISC_DECLARE_USING_MIXIN_METATYPE(DERIVED) \
112 using ::swift::misc::mixin::MetaType<DERIVED>::registerMetadata; \
113 using ::swift::misc::mixin::MetaType<DERIVED>::getMetaTypeId; \
114 using ::swift::misc::mixin::MetaType<DERIVED>::getClassName; \
115 using ::swift::misc::mixin::MetaType<DERIVED>::isA;
Free functions in swift::misc.
typename TMetaBaseOf< T >::type TMetaBaseOfT
Alias for typename TMetaBaseOf<T>::type.