QtBase  v6.3.1
Classes | Namespaces | Macros | Typedefs | Functions | Variables
qmetatype.h File Reference
#include <QtCore/qglobal.h>
#include <QtCore/qatomic.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qcompare.h>
#include <QtCore/qvarlengtharray.h>
#include <QtCore/qrefcount.h>
#include <QtCore/qscopeguard.h>
#include <QtCore/qdatastream.h>
#include <QtCore/qiterable.h>
#include <QtCore/qobjectdefs.h>
#include <array>
#include <new>
#include <vector>
#include <list>
#include <map>
#include <functional>
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
 The QMetaType class manages named types in the meta-object system. More...
 
class  QtMetaTypePrivate::QPairVariantInterfaceImpl
 
struct  QtMetaTypePrivate::QPairVariantInterfaceConvertFunctor< std::pair< T, U > >
 
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< void >
 
struct  QtPrivate::MetaObjectForType< T *, typename std::enable_if< IsPointerToTypeDerivedFromQObject< T * >::Value >::type >
 
struct  QtPrivate::MetaObjectForType< T, typename std::enable_if< IsGadgetHelper< T >::IsGadgetOrDerivedFrom >::type >
 
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, false >
 
class  QtPrivate::QMetaTypeForType< S >
 
struct  QtPrivate::QMetaTypeInterfaceWrapper< T >
 
class  QtPrivate::QMetaTypeInterfaceWrapper< void >
 
struct  QtPrivate::detail::is_complete_helper< T, ODR_VIOLATION_PREVENTER >
 
struct  QtPrivate::is_complete< T, ODR_VIOLATION_PREVENTER >
 
struct  QtPrivate::qRemovePointerLike< T >
 
struct  QtPrivate::TypeAndForceComplete< T, ForceComplete_ >
 

Namespaces

 QtPrivate
 
 QtMetaTypePrivate
 
 QtPrivate::detail
 

Macros

#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_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_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 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_TEMPLATE_EXPORT   Q_CORE_EXPORT
 
#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER(TypeName, Id, Name)    extern template class QT_METATYPE_TEMPLATE_EXPORT QMetaTypeForType<Name>;
 
#define Q_REMOVE_POINTER_LIKE_IMPL(Pointer)
 

Typedefs

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)
 
template<typename T >
char QtPrivate::qt_getEnumMetaObject (const T &)
 
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 ()
 
constexpr int QtPrivate::qNormalizeType (const char *begin, const char *end, char *output)
 
template<typename T >
constexpr auto QtPrivate::typenameHelper ()
 
QT_WARNING_PUSH QtPrivate::QT_WARNING_DISABLE_GCC ("-Wattributes") QT_WARNING_POP template< typename T > const expr const QMetaTypeInterface *qMetaTypeInterfaceForType()
 
template<typename Unique , typename TypeCompletePair >
constexpr const QMetaTypeInterface * QtPrivate::qTryMetaTypeInterfaceForType ()
 

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 }; \
}; \
} \
#define Q_DECLARE_METATYPE_TEMPLATE_2ARG(DOUBLE_ARG_TEMPLATE)
Definition: qmetatype.h:1492

Definition at line 1610 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 }; \
}; \
QT_END_NAMESPACE
@ NAME
Definition: inflate.h:27
GLenum array
Definition: qopenglext.h:7028
void NameAsArrayType
Definition: qmetatype.h:1144
static constexpr int qt_metatype_id()
Definition: qmetatype.h:1146

Definition at line 1444 of file qmetatype.h.

◆ Q_DECLARE_METATYPE

#define Q_DECLARE_METATYPE (   TYPE)    Q_DECLARE_METATYPE_IMPL(TYPE)

Definition at line 1417 of file qmetatype.h.

◆ Q_DECLARE_METATYPE_IMPL

#define Q_DECLARE_METATYPE_IMPL (   TYPE)
Value:
QT_BEGIN_NAMESPACE \
template <> \
{ \
enum { Defined = 1 }; \
static int qt_metatype_id() \
{ \
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; \
} \
}; \
QT_END_NAMESPACE
#define Q_BASIC_ATOMIC_INITIALIZER(a)
GLenum GLuint id
[6]
Definition: qopengl.h:270
GLuint name
#define TYPE(t)

Definition at line 1418 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> \
{ \
enum { \
}; \
static int qt_metatype_id() \
{ \
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); \
QByteArray typeName; \
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; \
} \
}; \
QT_END_NAMESPACE
size_t qstrlen(const char *str)
const char * typeName
Definition: qmetatype.cpp:869

Definition at line 1464 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> \
{ \
enum { \
}; \
static int qt_metatype_id() \
{ \
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); \
QByteArray typeName; \
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; \
} \
}; \
QT_END_NAMESPACE

Definition at line 1492 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 1628 of file qmetatype.h.

◆ Q_DECLARE_OPAQUE_POINTER

#define Q_DECLARE_OPAQUE_POINTER (   POINTER)
Value:
template <> \
struct IsPointerToTypeDerivedFromQObject<POINTER > \
{ \
enum { Value = false }; \
}; \

Definition at line 1406 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 }; \
}; \
} \
#define Q_DECLARE_METATYPE_TEMPLATE_1ARG(SINGLE_ARG_TEMPLATE)
Definition: qmetatype.h:1464

Definition at line 1586 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 1598 of file qmetatype.h.

◆ Q_DECLARE_SMART_POINTER_METATYPE

#define Q_DECLARE_SMART_POINTER_METATYPE (   SMART_POINTER)

Definition at line 1539 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; \
};
#define T(x)
Definition: main.cpp:42
GLenum type
Definition: qopengl.h:270

Definition at line 2465 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 1285 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); } \
/* end */
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:85
#define TAG(x)
#define Q_DECLARE_METATYPE(TYPE)
Definition: qmetatype.h:1417

Definition at line 1273 of file qmetatype.h.

◆ QT_DEFINE_METATYPE_ID

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

Definition at line 237 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:108
The QQueue class is a generic container that provides a queue.
Definition: qqueue.h:50
Definition: qset.h:54
The QStack class is a template class that provides a stack.
Definition: qstack.h:49
#define F(x, y, z)
Definition: md5.c:51

Definition at line 240 of file qmetatype.h.

◆ QT_FOR_EACH_AUTOMATIC_TEMPLATE_2ARG

#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_2ARG (   F)
Value:
F(QHash, class) \
F(QMap, class)
The QHash class is a template class that provides a hash-table-based dictionary.
Definition: qhash.h:773
Definition: qmap.h:222

Definition at line 247 of file qmetatype.h.

◆ QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER

#define QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER (   F)
Value:
The QPointer class is a template class that provides guarded pointers to QObject.
Definition: qpointer.h:54
The QSharedPointer class holds a strong reference to a shared pointer.
The QWeakPointer class holds a weak reference to a shared pointer.

Definition at line 251 of file qmetatype.h.

◆ 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(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>") \
F(QByteArrayList, -1, QByteArrayList, "QList<QByteArray>") \
F(QStringList, -1, QStringList, "QList<QString>") \
The QByteArrayList class provides a list of byte arrays.
The QStringList class provides a list of strings.
unsigned short UShort
Definition: ftraster.c:310
unsigned long ULong
Definition: ftraster.c:312
int Int
Definition: ftraster.c:307
unsigned int UInt
Definition: ftraster.c:308
short Short
Definition: ftraster.c:309
QPair< QVariant, QVariant > QVariantPair
Definition: qcontainerfwd.h:77
QT_BEGIN_INCLUDE_NAMESPACE typedef unsigned char uchar
Definition: qglobal.h:332
unsigned long ulong
Definition: qglobal.h:335
quint64 qulonglong
Definition: qglobal.h:302
unsigned int uint
Definition: qglobal.h:334
unsigned short ushort
Definition: qglobal.h:333
qint64 qlonglong
Definition: qglobal.h:301

Definition at line 206 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) \
F(QVariant, 41, QVariant) \
QT_FOR_EACH_STATIC_REGULAR_EXPRESSION(F) \
F(QCborMap, 55, QCborMap) \
QT_FOR_EACH_STATIC_ITEMMODEL_CLASS(F)
The QBitArray class provides an array of bits.
Definition: qbitarray.h:49
The QCborArray class is used to hold an array of CBOR elements.
Definition: qcborarray.h:56
The QCborMap class is used to hold an associative container representable in CBOR.
Definition: qcbormap.h:57
The QCborValue class encapsulates a value in CBOR.
Definition: qcborvalue.h:86
The QChar class provides a 16-bit Unicode character.
Definition: qchar.h:84
The QDate class provides date functions.
Definition: qdatetime.h:64
The QDateTime class provides date and time functions.
Definition: qdatetime.h:238
The QJsonArray class encapsulates a JSON array.
Definition: qjsonarray.h:54
The QJsonDocument class provides a way to read and write JSON documents.
Definition: qjsondocument.h:83
The QJsonObject class encapsulates a JSON object.
Definition: qjsonobject.h:56
The QJsonValue class encapsulates a value in JSON.
Definition: qjsonvalue.h:60
The QLineF class provides a two-dimensional vector using floating point precision.
Definition: qline.h:215
The QLine class provides a two-dimensional vector using integer precision.
Definition: qline.h:53
The QPointF class defines a point in the plane using floating point precision.
Definition: qpoint.h:242
The QPoint class defines a point in the plane using integer precision.
Definition: qpoint.h:52
The QRectF class defines a finite rectangle in the plane using floating point precision.
Definition: qrect.h:511
The QRect class defines a rectangle in the plane using integer precision.
Definition: qrect.h:59
The QSizeF class defines the size of a two-dimensional object using floating point precision.
Definition: qsize.h:235
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition: qsize.h:55
The QString class provides a Unicode character string.
Definition: qstring.h:388
The QTime class provides clock time functions.
Definition: qdatetime.h:166
The QUrl class provides a convenient interface for working with URLs.
Definition: qurl.h:130
The QUuid class stores a Universally Unique Identifier (UUID).
Definition: quuid.h:67
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:95

Definition at line 127 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 158 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_CORE_TEMPLATE

#define QT_FOR_EACH_STATIC_CORE_TEMPLATE (   F)
Value:

Definition at line 161 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_EASINGCURVE

#define QT_FOR_EACH_STATIC_EASINGCURVE (   F)

Definition at line 109 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) \
The QBitmap class provides monochrome (1-bit depth) pixmaps.
Definition: qbitmap.h:52
The QBrush class defines the fill pattern of shapes drawn by QPainter.
Definition: qbrush.h:66
The QColor class provides colors based on RGB, HSV or CMYK values.
Definition: qcolor.h:67
The QColorSpace class provides a color space abstraction.
Definition: qcolorspace.h:57
The QCursor class provides a mouse cursor with an arbitrary shape.
Definition: qcursor.h:81
The QFont class specifies a query for a font used for drawing text.
Definition: qfont.h:56
The QIcon class provides scalable icons in different modes and states.
Definition: qicon.h:56
The QImage class provides a hardware-independent image representation that allows direct access to th...
Definition: qimage.h:73
The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space.
Definition: qmatrix4x4.h:61
The QPalette class contains color groups for each widget state.
Definition: qpalette.h:55
The QPen class defines how a QPainter should draw lines and outlines of shapes.
Definition: qpen.h:61
The QPixmap class is an off-screen image representation that can be used as a paint device.
Definition: qpixmap.h:63
The QPolygonF class provides a list of points using floating point precision. \inmodule QtGui.
Definition: qpolygon.h:128
The QPolygon class provides a list of points using integer precision. \inmodule QtGui.
Definition: qpolygon.h:57
The QQuaternion class represents a quaternion consisting of a vector and scalar.
Definition: qquaternion.h:57
The QRegion class specifies a clip region for a painter.
Definition: qregion.h:63
The QTextFormat class provides formatting information for a QTextDocument. \inmodule QtGui.
Definition: qtextformat.h:126
The QTextLength class encapsulates the different types of length used in a QTextDocument....
Definition: qtextformat.h:81
The QTransform class specifies 2D transformations of a coordinate system.
Definition: qtransform.h:56
The QVector2D class represents a vector or vertex in 2D space.
Definition: qvectornd.h:62
The QVector3D class represents a vector or vertex in 3D space.
Definition: qvectornd.h:205
The QVector4D class represents a vector or vertex in 4D space.
Definition: qvectornd.h:369

Definition at line 176 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_ITEMMODEL_CLASS

#define QT_FOR_EACH_STATIC_ITEMMODEL_CLASS (   F)

Definition at line 117 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_KEYSEQUENCE_CLASS

#define QT_FOR_EACH_STATIC_KEYSEQUENCE_CLASS (   F)

Definition at line 173 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 102 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_PRIMITIVE_TYPE

#define QT_FOR_EACH_STATIC_PRIMITIVE_TYPE (   F)
Value:
F(Void, 43, void) \
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) \
@ Float
@ Double
long Long
Definition: ftraster.c:311
char Bool
Definition: ftraster.c:315
QCborSimpleType
Definition: qcborcommon.h:59
QT_BEGIN_NAMESPACE typedef char Char

Definition at line 81 of file qmetatype.h.

◆ QT_FOR_EACH_STATIC_REGULAR_EXPRESSION

#define QT_FOR_EACH_STATIC_REGULAR_EXPRESSION (   F)

Definition at line 124 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:81

Definition at line 228 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 202 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 817 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 1455 of file qmetatype.h.

◆ QT_IMPL_METATYPE_EXTERN

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

Definition at line 1287 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 1281 of file qmetatype.h.

◆ QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER

#define QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER (   TypeName,
  Id,
  Name 
)     extern template class QT_METATYPE_TEMPLATE_EXPORT QMetaTypeForType<Name>;

Definition at line 2424 of file qmetatype.h.

◆ QT_METATYPE_PRIVATE_DECLARE_TYPEINFO

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

Definition at line 752 of file qmetatype.h.

◆ QT_METATYPE_TEMPLATE_EXPORT

#define QT_METATYPE_TEMPLATE_EXPORT   Q_CORE_EXPORT

Definition at line 2419 of file qmetatype.h.

Function Documentation

◆ qMetaTypeId()

template<typename T >
constexpr int qMetaTypeId ( )
related

Definition at line 1302 of file qmetatype.h.

◆ qRegisterMetaType() [1/2]

template<typename T >
constexpr int qRegisterMetaType ( )
related

Definition at line 1312 of file qmetatype.h.

◆ qRegisterMetaType() [2/2]

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

Definition at line 1291 of file qmetatype.h.

◆ qRegisterNormalizedMetaType()

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

Definition at line 1268 of file qmetatype.h.

◆ qRegisterNormalizedMetaTypeImplementation()

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

Definition at line 1229 of file qmetatype.h.

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 2537 of file qmetatype.h.

◆ qt_metaTypeArray

template<typename... T>
constexpr const QtPrivate::QMetaTypeInterface* const qt_metaTypeArray[]
constexpr
Initial value:
= {
QtPrivate::qMetaTypeInterfaceForType<T>()...
}

Definition at line 2527 of file qmetatype.h.