Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qmetatype.h File Reference

(d31054c31456bc840061089e37e956ad815215c6)

#include <QtCore/qglobal.h>
#include <QtCore/qatomic.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qcompare.h>
#include <QtCore/qdatastream.h>
#include <QtCore/qfloat16.h>
#include <QtCore/qhashfunctions.h>
#include <QtCore/qiterable.h>
#include <QtCore/qobjectdefs.h>
#include <QtCore/qscopeguard.h>
#include <array>
#include <new>
#include <vector>
#include <list>
#include <map>
#include <functional>
#include <optional>
#include <QtCore/q20type_traits.h>
+ Include dependency graph for qmetatype.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  QtPrivate::QMetaTypeInterface
 
struct  QtPrivate::IsQFlags< T >
 
struct  QtPrivate::IsQFlags< QFlags< Enum > >
 
struct  QtPrivate::IsEnumOrFlags< T >
 
class  QMetaType
 \inmodule QtCore More...
 
class  QtMetaTypePrivate::QPairVariantInterfaceImpl
 
struct  QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor< std::pair< T, U > >
 
struct  QtPrivate::detail::is_complete_helper< T, ODR_VIOLATION_PREVENTER >
 
struct  QtPrivate::is_complete< T, ODR_VIOLATION_PREVENTER >
 
struct  QtPrivate::MetatypeDecay< T >
 
struct  QtPrivate::MetatypeDecay< const T >
 
struct  QtPrivate::MetatypeDecay< const T & >
 
struct  QtPrivate::IsPointerDeclaredOpaque< T >
 
struct  QtPrivate::IsPointerDeclaredOpaque< void * >
 
struct  QtPrivate::IsPointerDeclaredOpaque< const void * >
 
struct  QtPrivate::IsPointerToTypeDerivedFromQObject< T >
 
struct  QtPrivate::IsPointerToTypeDerivedFromQObject< void * >
 
struct  QtPrivate::IsPointerToTypeDerivedFromQObject< const void * >
 
struct  QtPrivate::IsPointerToTypeDerivedFromQObject< QObject * >
 
struct  QtPrivate::IsPointerToTypeDerivedFromQObject< T * >
 
struct  QtPrivate::IsGadgetHelper< T, Enable >
 
struct  QtPrivate::IsGadgetHelper< T, typename T::QtGadgetHelper >
 
struct  QtPrivate::IsPointerToGadgetHelper< T, Enable >
 
struct  QtPrivate::IsPointerToGadgetHelper< T *, typename T::QtGadgetHelper >
 
struct  QtPrivate::IsQEnumHelper< T >
 
struct  QtPrivate::IsQEnumHelper< void >
 
struct  QtPrivate::MetaObjectForType< T, Enable >
 
struct  QtPrivate::MetaObjectForType< T *, typename std::enable_if< IsPointerToTypeDerivedFromQObject< T * >::Value >::type >
 
struct  QtPrivate::MetaObjectForType< T, std::enable_if_t< std::disjunction_v< std::bool_constant< IsGadgetHelper< T >::IsGadgetOrDerivedFrom >, std::is_base_of< QObject, T > > > >
 
struct  QtPrivate::MetaObjectForType< T, typename std::enable_if< IsPointerToGadgetHelper< T >::IsGadgetOrDerivedFrom >::type >
 
struct  QtPrivate::MetaObjectForType< T, typename std::enable_if< IsQEnumHelper< T >::Value >::type >
 
struct  QtPrivate::IsSharedPointerToTypeDerivedFromQObject< T >
 
struct  QtPrivate::IsSharedPointerToTypeDerivedFromQObject< QSharedPointer< T > >
 
struct  QtPrivate::IsWeakPointerToTypeDerivedFromQObject< T >
 
struct  QtPrivate::IsWeakPointerToTypeDerivedFromQObject< QWeakPointer< T > >
 
struct  QtPrivate::IsTrackingPointerToTypeDerivedFromQObject< T >
 
struct  QtPrivate::IsTrackingPointerToTypeDerivedFromQObject< QPointer< T > >
 
struct  QtPrivate::IsSequentialContainer< T >
 
struct  QtPrivate::IsAssociativeContainer< T >
 
struct  QtPrivate::SequentialContainerTransformationHelper< T, bool >
 
struct  QtPrivate::SequentialValueTypeIsMetaType< T, bool >
 
struct  QtPrivate::SequentialContainerTransformationHelper< T, true >
 
struct  QtPrivate::AssociativeContainerTransformationHelper< T, bool >
 
struct  QtPrivate::AssociativeKeyTypeIsMetaType< T, bool >
 
struct  QtPrivate::AssociativeMappedTypeIsMetaType< T, bool >
 
struct  QtPrivate::AssociativeContainerTransformationHelper< T, true >
 
struct  QtPrivate::IsMetaTypePair< T, bool >
 
struct  QtPrivate::IsMetaTypePair< T, true >
 
struct  QtPrivate::IsPair< T >
 
struct  QtPrivate::IsPair< std::pair< T, U > >
 
struct  QtPrivate::MetaTypePairHelper< T >
 
struct  QtPrivate::MetaTypeSmartPointerHelper< T, typename >
 
struct  QMetaTypeIdQObject< T, int >
 
struct  QMetaTypeId< T >
 
struct  QMetaTypeId2< T >
 
struct  QMetaTypeId2< const T & >
 
struct  QMetaTypeId2< T & >
 
struct  QtPrivate::QMetaTypeIdHelper< T, Defined >
 
struct  QtPrivate::QMetaTypeIdHelper< T, false >
 
struct  QtPrivate::IsPointerToTypeDerivedFromQObject< Result(*)(Args...)>
 
struct  QtPrivate::QMetaTypeTypeFlags< T >
 
struct  QtPrivate::MetaTypeDefinedHelper< T, defined >
 
struct  QtPrivate::QSmartPointerConvertFunctor< SmartPointer >
 
struct  QtPrivate::QSmartPointerConvertFunctor< QWeakPointer< T > >
 
struct  QMetaTypeIdQObject< T *, QMetaType::PointerToQObject >
 
struct  QMetaTypeIdQObject< T, QMetaType::IsGadget >
 
struct  QMetaTypeIdQObject< T *, QMetaType::PointerToGadget >
 
struct  QMetaTypeIdQObject< T, QMetaType::IsEnumeration >
 
struct  QtPrivate::SharedPointerMetaTypeIdHelper< T, bool >
 
struct  QtPrivate::QSequentialIterableConvertFunctor< From >
 
struct  QtPrivate::QSequentialIterableMutableViewFunctor< From >
 
struct  QtPrivate::SequentialValueTypeIsMetaType< T, true >
 
struct  QtPrivate::QAssociativeIterableConvertFunctor< From >
 
struct  QtPrivate::QAssociativeIterableMutableViewFunctor< From >
 
struct  QtPrivate::AssociativeKeyTypeIsMetaType< T, true >
 
struct  QtPrivate::QTypeNormalizer
 
struct  QtPrivate::is_std_pair< T >
 
struct  QtPrivate::is_std_pair< std::pair< T1_, T2_ > >
 
struct  QtPrivate::BuiltinMetaType< T, typename >
 
struct  QtPrivate::BuiltinMetaType< T, std::enable_if_t< QMetaTypeId2< T >::IsBuiltIn > >
 
struct  QtPrivate::QEqualityOperatorForType< T, bool >
 
struct  QtPrivate::QEqualityOperatorForType< T, false >
 
struct  QtPrivate::QLessThanOperatorForType< T, bool >
 
struct  QtPrivate::QLessThanOperatorForType< T, false >
 
struct  QtPrivate::QDebugStreamOperatorForType< T, bool >
 
struct  QtPrivate::QDebugStreamOperatorForType< T, false >
 
struct  QtPrivate::QDataStreamOperatorForType< T, bool >
 
struct  QtPrivate::QDataStreamOperatorForType< T, true >
 
class  QtPrivate::QMetaTypeForType< S >
 
struct  QtPrivate::QMetaTypeInterfaceWrapper< T >
 
class  QtPrivate::QMetaTypeInterfaceWrapper< void >
 
struct  QtPrivate::qRemovePointerLike< T >
 
struct  QtPrivate::TypeAndForceComplete< T, ForceComplete_ >
 

Namespaces

namespace  QtPrivate
 \macro QT_NO_KEYWORDS >
 
namespace  QtMetaTypePrivate
 
namespace  QtPrivate::detail
 
namespace  QtPrivate::TypeNameHelper
 

Macros

#define QT_FOR_EACH_STATIC_PRIMITIVE_NON_VOID_TYPE(F)
 
#define QT_FOR_EACH_STATIC_PRIMITIVE_TYPE(F)
 
#define QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(F)    F(VoidStar, 31, void*) \
 
#define QT_FOR_EACH_STATIC_EASINGCURVE(F)
 
#define QT_FOR_EACH_STATIC_ITEMMODEL_CLASS(F)
 
#define QT_FOR_EACH_STATIC_REGULAR_EXPRESSION(F)
 
#define QT_FOR_EACH_STATIC_QVARIANT(F)    F(QVariant, 41, QVariant)
 
#define QT_FOR_EACH_STATIC_CORE_CLASS(F)
 
#define QT_FOR_EACH_STATIC_CORE_POINTER(F)    F(QObjectStar, 39, QObject*)
 
#define QT_FOR_EACH_STATIC_CORE_TEMPLATE(F)
 
#define QT_FOR_EACH_STATIC_KEYSEQUENCE_CLASS(F)
 
#define QT_FOR_EACH_STATIC_GUI_CLASS(F)
 
#define QT_FOR_EACH_STATIC_WIDGETS_CLASS(F)    F(QSizePolicy, 0x2000, QSizePolicy) \
 
#define QT_FOR_EACH_STATIC_ALIAS_TYPE(F)
 
#define QT_FOR_EACH_STATIC_VARIANT_ALIAS_TYPE(F)
 
#define QT_FOR_EACH_STATIC_TYPE(F)
 
#define QT_DEFINE_METATYPE_ID(TypeName, Id, Name)    TypeName = Id,
 
#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_1ARG(F)
 
#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_2ARG(F)
 
#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(F)
 
#define QMTI_MUTABLE
 
#define QT_METATYPE_PRIVATE_DECLARE_TYPEINFO(C, F)
 
#define QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER(Name)    template <class T> class Name; \
 
#define QT_DECL_METATYPE_EXTERN_TAGGED(TYPE, TAG, EXPORT)
 
#define QT_IMPL_METATYPE_EXTERN_TAGGED(TYPE, TAG)
 
#define QT_DECL_METATYPE_EXTERN(TYPE, EXPORT)    QT_DECL_METATYPE_EXTERN_TAGGED(TYPE, TYPE, EXPORT)
 
#define QT_IMPL_METATYPE_EXTERN(TYPE)    QT_IMPL_METATYPE_EXTERN_TAGGED(TYPE, TYPE)
 
#define Q_DECLARE_OPAQUE_POINTER(POINTER)
 
#define Q_DECLARE_METATYPE(TYPE)   Q_DECLARE_METATYPE_IMPL(TYPE)
 
#define Q_DECLARE_METATYPE_IMPL(TYPE)
 
#define Q_DECLARE_BUILTIN_METATYPE(TYPE, METATYPEID, NAME)
 
#define QT_FORWARD_DECLARE_STATIC_TYPES_ITER(TypeName, TypeId, Name)    class Name;
 
#define Q_DECLARE_METATYPE_TEMPLATE_1ARG(SINGLE_ARG_TEMPLATE)
 
#define Q_DECLARE_METATYPE_TEMPLATE_2ARG(DOUBLE_ARG_TEMPLATE)
 
#define Q_DECLARE_SMART_POINTER_METATYPE(SMART_POINTER)
 
#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(SINGLE_ARG_TEMPLATE)
 
#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE_ITER(TEMPLATENAME)    Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(TEMPLATENAME)
 
#define Q_DECLARE_ASSOCIATIVE_CONTAINER_METATYPE(TEMPLATENAME)
 
#define Q_DECLARE_METATYPE_TEMPLATE_SMART_POINTER_ITER(TEMPLATENAME)    Q_DECLARE_SMART_POINTER_METATYPE(TEMPLATENAME)
 
#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name)
 
#define Q_REMOVE_POINTER_LIKE_IMPL(Pointer)
 

Typedefs

using QtPrivate::NonConstMetaTypeInterface = QMetaTypeInterface
 
template<typename T >
using QtPrivate::IsRealGadget = std::bool_constant<IsGadgetHelper<T>::IsRealGadget>
 
template<typename T >
using QtPrivate::qRemovePointerLike_t = typename qRemovePointerLike<T>::type
 

Functions

template<typename T >
constexpr int qMetaTypeId ()
 
template<typename From , typename To >
To QtPrivate::convertImplicit (const From &from)
 This template is used for implicit conversion from type From to type To.
 
template<typename T >
char QtPrivate::qt_getEnumMetaObject (const T &)
 
template<typename X >
static constexpr bool QtPrivate::checkTypeIsSuitableForMetaType ()
 
Q_CORE_EXPORT bool QtPrivate::isBuiltinType (const QByteArray &type)
 
template<typename T >
int qRegisterNormalizedMetaTypeImplementation (const QT_PREPEND_NAMESPACE(QByteArray) &normalizedTypeName)
 
template<typename T >
int qRegisterNormalizedMetaType (const QT_PREPEND_NAMESPACE(QByteArray) &normalizedTypeName)
 
template<typename T >
int qRegisterMetaType (const char *typeName)
 
template<typename T >
constexpr int qRegisterMetaType ()
 
int qRegisterMetaType (QMetaType meta)
 
Q_CORE_EXPORT bool QtPrivate::hasRegisteredConverterFunctionToPairVariantInterface (QMetaType m)
 
Q_CORE_EXPORT bool QtPrivate::hasRegisteredConverterFunctionToIterableMetaSequence (QMetaType m)
 
Q_CORE_EXPORT bool QtPrivate::hasRegisteredMutableViewFunctionToIterableMetaSequence (QMetaType m)
 
Q_CORE_EXPORT bool QtPrivate::hasRegisteredConverterFunctionToIterableMetaAssociation (QMetaType m)
 
Q_CORE_EXPORT bool QtPrivate::hasRegisteredMutableViewFunctionToIterableMetaAssociation (QMetaType m)
 
constexpr int QtPrivate::qNormalizeType (const char *begin, const char *end, char *output)
 
template<typename T >
constexpr auto QtPrivate::TypeNameHelper::typenameHelper ()
 
template<typename T >
constexpr const QMetaTypeInterfaceQtPrivate::qMetaTypeInterfaceForType ()
 
template<typename Unique , typename TypeCompletePair >
constexpr const QMetaTypeInterfaceQtPrivate::qTryMetaTypeInterfaceForType ()
 
size_t qHash (QMetaType type, size_t seed=0)
 

Variables

template<typename T >
constexpr bool QtPrivate::IsQmlListType = false
 
template<typename T , bool = std::is_enum<T>::value>
constexpr bool QtPrivate::IsUnsignedEnum = false
 
template<typename T >
constexpr bool QtPrivate::IsUnsignedEnum< T, true > = !std::is_signed_v<std::underlying_type_t<T>>
 
template<typename... T>
constexpr const QtPrivate::QMetaTypeInterface *const qt_metaTypeArray []
 
template<typename Unique , typename... T>
constexpr const QtPrivate::QMetaTypeInterface *const qt_incomplete_metaTypeArray []
 

Macro Definition Documentation

◆ Q_DECLARE_ASSOCIATIVE_CONTAINER_METATYPE

#define Q_DECLARE_ASSOCIATIVE_CONTAINER_METATYPE ( TEMPLATENAME)
Value:
QT_BEGIN_NAMESPACE \
namespace QtPrivate { \
template<typename T, typename U> \
struct IsAssociativeContainer<TEMPLATENAME<T, U> > \
{ \
enum { Value = true }; \
}; \
} \
QT_END_NAMESPACE \
Q_DECLARE_METATYPE_TEMPLATE_2ARG(TEMPLATENAME)
\macro QT_NO_KEYWORDS >

Definition at line 1719 of file qmetatype.h.

◆ Q_DECLARE_BUILTIN_METATYPE

#define Q_DECLARE_BUILTIN_METATYPE ( TYPE,
METATYPEID,
NAME )
Value:
QT_BEGIN_NAMESPACE \
template<> struct QMetaTypeId2<NAME> \
{ \
using NameAsArrayType = std::array<char, sizeof(#NAME)>; \
enum { Defined = 1, IsBuiltIn = true, MetaType = METATYPEID }; \
static inline constexpr int qt_metatype_id() { return METATYPEID; } \
static constexpr NameAsArrayType nameAsArray = { #NAME }; \
}; \
void NameAsArrayType
Definition qmetatype.h:1240
static constexpr int qt_metatype_id()
Definition qmetatype.h:1242

Definition at line 1553 of file qmetatype.h.

◆ Q_DECLARE_METATYPE

#define Q_DECLARE_METATYPE ( TYPE)    Q_DECLARE_METATYPE_IMPL(TYPE)

Definition at line 1525 of file qmetatype.h.

◆ Q_DECLARE_METATYPE_IMPL

#define Q_DECLARE_METATYPE_IMPL ( TYPE)
Value:
QT_BEGIN_NAMESPACE \
template <> \
struct QMetaTypeId< TYPE > \
{ \
enum { Defined = 1 }; \
static_assert(QtPrivate::checkTypeIsSuitableForMetaType<TYPE>()); \
static int qt_metatype_id() \
{ \
Q_CONSTINIT static QBasicAtomicInt metatype_id = Q_BASIC_ATOMIC_INITIALIZER(0); \
if (const int id = metatype_id.loadAcquire()) \
return id; \
constexpr auto arr = QtPrivate::typenameHelper<TYPE>(); \
auto name = arr.data(); \
if (QByteArrayView(name) == (#TYPE)) { \
const int id = qRegisterNormalizedMetaType<TYPE>(name); \
metatype_id.storeRelease(id); \
return id; \
} \
const int newId = qRegisterMetaType< TYPE >(#TYPE); \
metatype_id.storeRelease(newId); \
return newId; \
} \
}; \
#define Q_BASIC_ATOMIC_INITIALIZER(a)
GLenum GLuint id
[7]
GLuint name
const char * TYPE

Definition at line 1526 of file qmetatype.h.

◆ Q_DECLARE_METATYPE_TEMPLATE_1ARG

#define Q_DECLARE_METATYPE_TEMPLATE_1ARG ( SINGLE_ARG_TEMPLATE)
Value:
QT_BEGIN_NAMESPACE \
template <typename T> \
struct QMetaTypeId< SINGLE_ARG_TEMPLATE<T> > \
{ \
enum { \
}; \
static int qt_metatype_id() \
{ \
Q_CONSTINIT static QBasicAtomicInt metatype_id = Q_BASIC_ATOMIC_INITIALIZER(0); \
if (const int id = metatype_id.loadRelaxed()) \
return id; \
const char *tName = QMetaType::fromType<T>().name(); \
Q_ASSERT(tName); \
const size_t tNameLen = qstrlen(tName); \
typeName.reserve(sizeof(#SINGLE_ARG_TEMPLATE) + 1 + tNameLen + 1 + 1); \
typeName.append(#SINGLE_ARG_TEMPLATE, int(sizeof(#SINGLE_ARG_TEMPLATE)) - 1) \
.append('<').append(tName, tNameLen); \
typeName.append('>'); \
const int newId = qRegisterNormalizedMetaType< SINGLE_ARG_TEMPLATE<T> >(typeName); \
metatype_id.storeRelease(newId); \
return newId; \
} \
}; \
\inmodule QtCore
Definition qbytearray.h:57
size_t qstrlen(const char *str)
const char * typeName

Definition at line 1573 of file qmetatype.h.

◆ Q_DECLARE_METATYPE_TEMPLATE_2ARG

#define Q_DECLARE_METATYPE_TEMPLATE_2ARG ( DOUBLE_ARG_TEMPLATE)
Value:
QT_BEGIN_NAMESPACE \
template<typename T, typename U> \
struct QMetaTypeId< DOUBLE_ARG_TEMPLATE<T, U> > \
{ \
enum { \
}; \
static int qt_metatype_id() \
{ \
Q_CONSTINIT static QBasicAtomicInt metatype_id = Q_BASIC_ATOMIC_INITIALIZER(0); \
if (const int id = metatype_id.loadAcquire()) \
return id; \
const char *tName = QMetaType::fromType<T>().name(); \
const char *uName = QMetaType::fromType<U>().name(); \
Q_ASSERT(tName); \
Q_ASSERT(uName); \
const size_t tNameLen = qstrlen(tName); \
const size_t uNameLen = qstrlen(uName); \
typeName.reserve(sizeof(#DOUBLE_ARG_TEMPLATE) + 1 + tNameLen + 1 + uNameLen + 1 + 1); \
typeName.append(#DOUBLE_ARG_TEMPLATE, int(sizeof(#DOUBLE_ARG_TEMPLATE)) - 1) \
.append('<').append(tName, tNameLen).append(',').append(uName, uNameLen); \
typeName.append('>'); \
const int newId = qRegisterNormalizedMetaType< DOUBLE_ARG_TEMPLATE<T, U> >(typeName); \
metatype_id.storeRelease(newId); \
return newId; \
} \
}; \

Definition at line 1601 of file qmetatype.h.

◆ Q_DECLARE_METATYPE_TEMPLATE_SMART_POINTER_ITER

#define Q_DECLARE_METATYPE_TEMPLATE_SMART_POINTER_ITER ( TEMPLATENAME)     Q_DECLARE_SMART_POINTER_METATYPE(TEMPLATENAME)

Definition at line 1737 of file qmetatype.h.

◆ Q_DECLARE_OPAQUE_POINTER

#define Q_DECLARE_OPAQUE_POINTER ( POINTER)
Value:
template <> struct IsPointerDeclaredOpaque<POINTER> \
: std::true_type {}; \
Combined button and popup list for selecting options.

Definition at line 1517 of file qmetatype.h.

◆ Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE

#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE ( SINGLE_ARG_TEMPLATE)
Value:
QT_BEGIN_NAMESPACE \
namespace QtPrivate { \
template<typename T> \
struct IsSequentialContainer<SINGLE_ARG_TEMPLATE<T> > \
{ \
enum { Value = true }; \
}; \
} \
QT_END_NAMESPACE \
Q_DECLARE_METATYPE_TEMPLATE_1ARG(SINGLE_ARG_TEMPLATE)

Definition at line 1695 of file qmetatype.h.

◆ Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE_ITER

#define Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE_ITER ( TEMPLATENAME)     Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE(TEMPLATENAME)

Definition at line 1707 of file qmetatype.h.

◆ Q_DECLARE_SMART_POINTER_METATYPE

#define Q_DECLARE_SMART_POINTER_METATYPE ( SMART_POINTER)

Definition at line 1648 of file qmetatype.h.

◆ Q_REMOVE_POINTER_LIKE_IMPL

#define Q_REMOVE_POINTER_LIKE_IMPL ( Pointer)
Value:
template <typename T> \
struct qRemovePointerLike<Pointer<T>> \
{ \
using type = T; \
};
GLenum type

Definition at line 2588 of file qmetatype.h.

◆ QMTI_MUTABLE

#define QMTI_MUTABLE

Definition at line 260 of file qmetatype.h.

◆ QT_DECL_METATYPE_EXTERN

#define QT_DECL_METATYPE_EXTERN ( TYPE,
EXPORT )    QT_DECL_METATYPE_EXTERN_TAGGED(TYPE, TYPE, EXPORT)

Definition at line 1388 of file qmetatype.h.

◆ QT_DECL_METATYPE_EXTERN_TAGGED

#define QT_DECL_METATYPE_EXTERN_TAGGED ( TYPE,
TAG,
EXPORT )
Value:
QT_BEGIN_NAMESPACE \
EXPORT int qRegisterNormalizedMetaType_ ## TAG (const QByteArray &); \
template <> inline int qRegisterNormalizedMetaType< TYPE >(const QByteArray &name) \
{ return qRegisterNormalizedMetaType_ ## TAG (name); } \
QT_END_NAMESPACE \
Q_DECLARE_METATYPE(TYPE) \
/* end */
#define TAG(x)

Definition at line 1376 of file qmetatype.h.

◆ QT_DEFINE_METATYPE_ID

#define QT_DEFINE_METATYPE_ID ( TypeName,
Id,
Name )    TypeName = Id,

Definition at line 228 of file qmetatype.h.

◆ QT_FOR_EACH_AUTOMATIC_TEMPLATE_1ARG

#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_1ARG ( F)
Value:
F(QList) \
F(QQueue) \
F(QStack) \
F(QSet) \
/*end*/
Definition qlist.h:75
\inmodule QtCore
Definition qqueue.h:14
Definition qset.h:18
\inmodule QtCore
Definition qstack.h:13

Definition at line 231 of file qmetatype.h.

Referenced by make_candidates().

◆ QT_FOR_EACH_AUTOMATIC_TEMPLATE_2ARG

#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_2ARG ( F)
Value:
F(QHash, class) \
F(QMap, class)
\inmodule QtCore
Definition qhash.h:820
Definition qmap.h:187

Definition at line 238 of file qmetatype.h.

◆ QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER

#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER ( F)
Value:

Definition at line 242 of file qmetatype.h.

Referenced by make_candidates().

◆ QT_FOR_EACH_STATIC_ALIAS_TYPE

#define QT_FOR_EACH_STATIC_ALIAS_TYPE ( F)
Value:
F(ULong, -1, ulong, "unsigned long") \
F(UInt, -1, uint, "unsigned int") \
F(UShort, -1, ushort, "unsigned short") \
F(UChar, -1, uchar, "unsigned char") \
F(LongLong, -1, qlonglong, "long long") \
F(ULongLong, -1, qulonglong, "unsigned long long") \
F(SChar, -1, signed char, "qint8") \
F(UChar, -1, uchar, "quint8") \
F(Short, -1, short, "qint16") \
F(UShort, -1, ushort, "quint16") \
F(Int, -1, int, "qint32") \
F(UInt, -1, uint, "quint32") \
F(LongLong, -1, qlonglong, "qint64") \
F(ULongLong, -1, qulonglong, "quint64") \
F(QByteArrayList, -1, QByteArrayList, "QList<QByteArray>") \
F(QStringList, -1, QStringList, "QList<QString>") \
QT_FOR_EACH_STATIC_VARIANT_ALIAS_TYPE(F)
\inmodule QtCore
\inmodule QtCore
unsigned char uchar
Definition qtypes.h:32
unsigned long ulong
Definition qtypes.h:35
quint64 qulonglong
Definition qtypes.h:64
unsigned int uint
Definition qtypes.h:34
unsigned short ushort
Definition qtypes.h:33
qint64 qlonglong
Definition qtypes.h:63

Definition at line 189 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_CORE_CLASS

#define QT_FOR_EACH_STATIC_CORE_CLASS ( F)
Value:
F(QChar, 7, QChar) \
F(QString, 10, QString) \
F(QBitArray, 13, QBitArray) \
F(QDate, 14, QDate) \
F(QTime, 15, QTime) \
F(QDateTime, 16, QDateTime) \
F(QUrl, 17, QUrl) \
F(QLocale, 18, QLocale) \
F(QRect, 19, QRect) \
F(QRectF, 20, QRectF) \
F(QSize, 21, QSize) \
F(QSizeF, 22, QSizeF) \
F(QLine, 23, QLine) \
F(QLineF, 24, QLineF) \
F(QPoint, 25, QPoint) \
F(QPointF, 26, QPointF) \
QT_FOR_EACH_STATIC_EASINGCURVE(F) \
F(QUuid, 30, QUuid) \
QT_FOR_EACH_STATIC_QVARIANT(F) \
QT_FOR_EACH_STATIC_REGULAR_EXPRESSION(F) \
F(QCborMap, 55, QCborMap) \
F(Float16, 63, qfloat16) \
QT_FOR_EACH_STATIC_ITEMMODEL_CLASS(F)
\inmodule QtCore
Definition qbitarray.h:13
\inmodule QtCore\reentrant
Definition qcborarray.h:20
\inmodule QtCore\reentrant
Definition qcbormap.h:21
\inmodule QtCore\reentrant
Definition qcborvalue.h:47
\inmodule QtCore
\inmodule QtCore\reentrant
Definition qdatetime.h:283
\inmodule QtCore \reentrant
Definition qdatetime.h:29
\inmodule QtCore\reentrant
Definition qjsonarray.h:18
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
Definition qjsonobject.h:20
\inmodule QtCore\reentrant
Definition qjsonvalue.h:25
\inmodule QtCore\compares equality \compareswith equality QLine \endcompareswith
Definition qline.h:192
\inmodule QtCore\compares equality \compareswith equality QLineF \endcompareswith
Definition qline.h:18
\inmodule QtCore\reentrant
Definition qpoint.h:217
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore\reentrant
Definition qrect.h:484
\inmodule QtCore\reentrant
Definition qrect.h:30
\inmodule QtCore
Definition qsize.h:208
\inmodule QtCore
Definition qsize.h:25
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore \reentrant
Definition qdatetime.h:215
\inmodule QtCore
Definition qurl.h:94
\inmodule QtCore
Definition quuid.h:31
\keyword 16-bit Floating Point Support\inmodule QtCore \inheaderfile QFloat16
Definition qfloat16.h:47

Definition at line 102 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_CORE_POINTER

#define QT_FOR_EACH_STATIC_CORE_POINTER ( F)     F(QObjectStar, 39, QObject*)

Definition at line 134 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_CORE_TEMPLATE

#define QT_FOR_EACH_STATIC_CORE_TEMPLATE ( F)
Value:
std::pair< QVariant, QVariant > QVariantPair

Definition at line 138 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_EASINGCURVE

#define QT_FOR_EACH_STATIC_EASINGCURVE ( F)

Definition at line 78 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_GUI_CLASS

#define QT_FOR_EACH_STATIC_GUI_CLASS ( F)
Value:
F(QFont, 0x1000, QFont) \
F(QPixmap, 0x1001, QPixmap) \
F(QBrush, 0x1002, QBrush) \
F(QColor, 0x1003, QColor) \
F(QPalette, 0x1004, QPalette) \
F(QIcon, 0x1005, QIcon) \
F(QImage, 0x1006, QImage) \
F(QPolygon, 0x1007, QPolygon) \
F(QRegion, 0x1008, QRegion) \
F(QBitmap, 0x1009, QBitmap) \
F(QCursor, 0x100a, QCursor) \
QT_FOR_EACH_STATIC_KEYSEQUENCE_CLASS(F) \
F(QPen, 0x100c, QPen) \
F(QTextLength, 0x100d, QTextLength) \
F(QTextFormat, 0x100e, QTextFormat) \
F(QTransform, 0x1010, QTransform) \
F(QMatrix4x4, 0x1011, QMatrix4x4) \
F(QVector2D, 0x1012, QVector2D) \
F(QVector3D, 0x1013, QVector3D) \
F(QVector4D, 0x1014, QVector4D) \
F(QQuaternion, 0x1015, QQuaternion) \
F(QPolygonF, 0x1016, QPolygonF) \
F(QColorSpace, 0x1017, QColorSpace) \
\inmodule QtGui
Definition qbitmap.h:16
\inmodule QtGui
Definition qbrush.h:30
The QColorSpace class provides a color space abstraction.
Definition qcolorspace.h:21
The QColor class provides colors based on RGB, HSV or CMYK values.
Definition qcolor.h:31
The QCursor class provides a mouse cursor with an arbitrary shape.
Definition qcursor.h:45
\reentrant
Definition qfont.h:22
The QIcon class provides scalable icons in different modes and states.
Definition qicon.h:20
\inmodule QtGui
Definition qimage.h:37
The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space.
Definition qmatrix4x4.h:25
The QPalette class contains color groups for each widget state.
Definition qpalette.h:19
\inmodule QtGui
Definition qpen.h:28
Returns a copy of the pixmap that is transformed using the given transformation transform and transfo...
Definition qpixmap.h:27
The QPolygonF class provides a list of points using floating point precision.
Definition qpolygon.h:96
The QPolygon class provides a list of points using integer precision.
Definition qpolygon.h:23
The QQuaternion class represents a quaternion consisting of a vector and scalar.
The QRegion class specifies a clip region for a painter.
Definition qregion.h:27
\reentrant
Definition qtextformat.h:90
\reentrant
Definition qtextformat.h:45
The QTransform class specifies 2D transformations of a coordinate system.
Definition qtransform.h:20
The QVector2D class represents a vector or vertex in 2D space.
Definition qvectornd.h:31
The QVector3D class represents a vector or vertex in 3D space.
Definition qvectornd.h:171
The QVector4D class represents a vector or vertex in 4D space.
Definition qvectornd.h:330

Definition at line 159 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_ITEMMODEL_CLASS

#define QT_FOR_EACH_STATIC_ITEMMODEL_CLASS ( F)

Definition at line 86 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_KEYSEQUENCE_CLASS

#define QT_FOR_EACH_STATIC_KEYSEQUENCE_CLASS ( F)

Definition at line 156 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_PRIMITIVE_NON_VOID_TYPE

#define QT_FOR_EACH_STATIC_PRIMITIVE_NON_VOID_TYPE ( F)
Value:
F(Bool, 1, bool) \
F(Int, 2, int) \
F(UInt, 3, uint) \
F(LongLong, 4, qlonglong) \
F(ULongLong, 5, qulonglong) \
F(Double, 6, double) \
F(Long, 32, long) \
F(Short, 33, short) \
F(Char, 34, char) \
F(Char16, 56, char16_t) \
F(Char32, 57, char32_t) \
F(ULong, 35, ulong) \
F(UShort, 36, ushort) \
F(UChar, 37, uchar) \
F(Float, 38, float) \
F(SChar, 40, signed char) \
F(Nullptr, 51, std::nullptr_t) \
QCborSimpleType
Definition qcborcommon.h:23
char Char

Definition at line 47 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_PRIMITIVE_POINTER

#define QT_FOR_EACH_STATIC_PRIMITIVE_POINTER ( F)     F(VoidStar, 31, void*) \

Definition at line 71 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_PRIMITIVE_TYPE

#define QT_FOR_EACH_STATIC_PRIMITIVE_TYPE ( F)
Value:
F(Void, 43, void) \
#define QT_FOR_EACH_STATIC_PRIMITIVE_NON_VOID_TYPE(F)
Definition qmetatype.h:47

Definition at line 67 of file qmetatype.h.

Referenced by isPrimitiveType().

◆ QT_FOR_EACH_STATIC_QVARIANT

#define QT_FOR_EACH_STATIC_QVARIANT ( F)     F(QVariant, 41, QVariant)

Definition at line 96 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_REGULAR_EXPRESSION

#define QT_FOR_EACH_STATIC_REGULAR_EXPRESSION ( F)

Definition at line 93 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_TYPE

#define QT_FOR_EACH_STATIC_TYPE ( F)
Value:
QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(F)\
QT_FOR_EACH_STATIC_CORE_CLASS(F)\
QT_FOR_EACH_STATIC_CORE_POINTER(F)\
QT_FOR_EACH_STATIC_CORE_TEMPLATE(F)\
QT_FOR_EACH_STATIC_GUI_CLASS(F)\
QT_FOR_EACH_STATIC_WIDGETS_CLASS(F)\
#define QT_FOR_EACH_STATIC_PRIMITIVE_TYPE(F)
Definition qmetatype.h:67

Definition at line 219 of file qmetatype.h.

Referenced by metaTypeEnumValueString().

◆ QT_FOR_EACH_STATIC_VARIANT_ALIAS_TYPE

#define QT_FOR_EACH_STATIC_VARIANT_ALIAS_TYPE ( F)
Value:
F(QVariantList, -1, QVariantList, "QList<QVariant>") \
F(QVariantMap, -1, QVariantMap, "QMap<QString,QVariant>") \
F(QVariantHash, -1, QVariantHash, "QHash<QString,QVariant>") \
F(QVariantPair, -1, QVariantPair, "QPair<QVariant,QVariant>") \

Definition at line 209 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_WIDGETS_CLASS

#define QT_FOR_EACH_STATIC_WIDGETS_CLASS ( F)     F(QSizePolicy, 0x2000, QSizePolicy) \

Definition at line 185 of file qmetatype.h.

◆ QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER

#define QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER ( Name)     template <class T> class Name; \

Definition at line 869 of file qmetatype.h.

◆ QT_FORWARD_DECLARE_STATIC_TYPES_ITER

#define QT_FORWARD_DECLARE_STATIC_TYPES_ITER ( TypeName,
TypeId,
Name )    class Name;

Definition at line 1564 of file qmetatype.h.

◆ QT_IMPL_METATYPE_EXTERN

#define QT_IMPL_METATYPE_EXTERN ( TYPE)     QT_IMPL_METATYPE_EXTERN_TAGGED(TYPE, TYPE)

Definition at line 1390 of file qmetatype.h.

◆ QT_IMPL_METATYPE_EXTERN_TAGGED

#define QT_IMPL_METATYPE_EXTERN_TAGGED ( TYPE,
TAG )
Value:
int qRegisterNormalizedMetaType_ ## TAG (const QByteArray &name) \
{ return qRegisterNormalizedMetaTypeImplementation< TYPE >(name); } \
/* end */

Definition at line 1384 of file qmetatype.h.

◆ QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER

#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER ( TypeName,
Id,
Name )
Value:
extern template class Q_CORE_EXPORT QMetaTypeForType<Name>; \
extern template struct Q_CORE_EXPORT QMetaTypeInterfaceWrapper<Name>;

Definition at line 2569 of file qmetatype.h.

◆ QT_METATYPE_PRIVATE_DECLARE_TYPEINFO

#define QT_METATYPE_PRIVATE_DECLARE_TYPEINFO ( C,
F )
Value:
} \
Q_DECLARE_TYPEINFO(QtMetaTypePrivate:: C, (F)); \
namespace QtMetaTypePrivate {

Definition at line 804 of file qmetatype.h.

Function Documentation

◆ qHash()

size_t qHash ( QMetaType type,
size_t seed = 0 )
related

Definition at line 2690 of file qmetatype.h.

◆ qMetaTypeId()

template<typename T >
constexpr int qMetaTypeId ( )
related

Definition at line 1405 of file qmetatype.h.

Referenced by QSSGRuntimeUtils::applyPropertyValue(), and searchContextProperties().

+ Here is the caller graph for this function:

◆ qRegisterMetaType() [1/3]

template<typename T >
constexpr int qRegisterMetaType ( )
related

Definition at line 1418 of file qmetatype.h.

◆ qRegisterMetaType() [2/3]

template<typename T >
int qRegisterMetaType ( const char * typeName)
related

Definition at line 1394 of file qmetatype.h.

◆ qRegisterMetaType() [3/3]

int qRegisterMetaType ( QMetaType meta)
related

Definition at line 1424 of file qmetatype.h.

◆ qRegisterNormalizedMetaType()

template<typename T >
int qRegisterNormalizedMetaType ( const QT_PREPEND_NAMESPACE(QByteArray) & normalizedTypeName)

Definition at line 1371 of file qmetatype.h.

◆ qRegisterNormalizedMetaTypeImplementation()

Variable Documentation

◆ qt_incomplete_metaTypeArray

template<typename Unique , typename... T>
constexpr const QtPrivate::QMetaTypeInterface* const qt_incomplete_metaTypeArray[]
constexpr
Initial value:
= {
QtPrivate::qTryMetaTypeInterfaceForType<Unique, T>()...
}

Definition at line 2686 of file qmetatype.h.

◆ qt_metaTypeArray

template<typename... T>
constexpr const QtPrivate::QMetaTypeInterface* const qt_metaTypeArray[]
constexpr
Initial value:
= {
QtPrivate::qTryMetaTypeInterfaceForType<void, QtPrivate::TypeAndForceComplete<T, std::true_type>>()...
}

Definition at line 2669 of file qmetatype.h.