summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-10-20 14:34:20 +0200
committerLars Knoll <lars.knoll@qt.io>2020-10-23 09:50:11 +0200
commit194f0ab50cef9be3cb40fc45861208493aca9d1d (patch)
treec60ef35e10b317379daede3539e3a7cc5b1d890e /src/corelib/kernel
parent41751755881f88cea4bc534b650605bb944cde18 (diff)
Make some QMetaType members constexpr and inline
Since QMetaType::fromType() is constexpr, it makes sense to also make some of it's members constexpr. Change-Id: Ia2d63a904abb680ed63c1f88cb68f1d0309d029c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r--src/corelib/kernel/qmetatype.cpp35
-rw-r--r--src/corelib/kernel/qmetatype.h35
2 files changed, 35 insertions, 35 deletions
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index 4cf1ac6548..be76a3f1d9 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -499,7 +499,7 @@ int QMetaType::id() const
}
/*!
- \fn bool QMetaType::sizeOf() const
+ \fn constexpr bool QMetaType::sizeOf() const
\since 5.0
Returns the size of the type in bytes (i.e. sizeof(T),
@@ -511,15 +511,9 @@ int QMetaType::id() const
\sa QMetaType::construct(), QMetaType::sizeOf(), QMetaType::alignOf()
*/
-qsizetype QMetaType::sizeOf() const
-{
- if (d_ptr)
- return d_ptr->size;
- return 0;
-}
/*!
- \fn int QMetaType::alignOf() const
+ \fn constexpr int QMetaType::alignOf() const
\since 6.0
Returns the alignment of the type in bytes (i.e. alignof(T),
@@ -532,30 +526,18 @@ qsizetype QMetaType::sizeOf() const
\sa QMetaType::construct(), QMetaType::sizeOf()
*/
-qsizetype QMetaType::alignOf() const
-{
- if (d_ptr)
- return d_ptr->alignment;
- return 0;
-}
/*!
- \fn TypeFlags QMetaType::flags() const
+ \fn constexpr TypeFlags QMetaType::flags() const
\since 5.0
Returns flags of the type for which this QMetaType instance was constructed.
\sa QMetaType::TypeFlags, QMetaType::flags()
*/
-QMetaType::TypeFlags QMetaType::flags() const
-{
- if (d_ptr)
- return TypeFlags(d_ptr->flags);
- return {};
-}
/*!
- \fn const QMetaObject *QMetaType::metaObject() const
+ \fn constexpr const QMetaObject *QMetaType::metaObject() const
\since 5.5
return a QMetaObject relative to this type.
@@ -574,10 +556,6 @@ QMetaType::TypeFlags QMetaType::flags() const
\sa QMetaType::flags()
*/
-const QMetaObject *QMetaType::metaObject() const
-{
- return d_ptr ? d_ptr->metaObject : nullptr;
-}
/*!
\fn void *QMetaType::create(const void *copy = nullptr) const
@@ -2482,6 +2460,7 @@ bool QMetaType::hasRegisteredMutableViewFunction(QMetaType fromType, QMetaType t
*/
/*!
+ \fn constexpr const char *QMetaType::name() const
\since 5.15
Returns the type name associated with this QMetaType, or a null
@@ -2490,10 +2469,6 @@ bool QMetaType::hasRegisteredMutableViewFunction(QMetaType fromType, QMetaType t
\sa typeName()
*/
-const char *QMetaType::name() const
-{
- return d_ptr ? d_ptr->name : nullptr;
-}
/*
Similar to QMetaType::type(), but only looks in the static set of types.
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 4e8bae2316..65e0c4ab97 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -408,11 +408,11 @@ public:
bool isValid() const;
bool isRegistered() const;
int id() const;
- qsizetype sizeOf() const;
- qsizetype alignOf() const;
- TypeFlags flags() const;
- const QMetaObject *metaObject() const;
- const char *name() const;
+ constexpr qsizetype sizeOf() const;
+ constexpr qsizetype alignOf() const;
+ constexpr TypeFlags flags() const;
+ constexpr const QMetaObject *metaObject() const;
+ constexpr const char *name() const;
void *create(const void *copy = nullptr) const;
void destroy(void *data) const;
@@ -2401,11 +2401,36 @@ constexpr QMetaType QMetaType::fromType()
return QMetaType(QtPrivate::qMetaTypeInterfaceForType<T>());
}
+constexpr qsizetype QMetaType::sizeOf() const
+{
+ return d_ptr ? d_ptr->size : 0;
+}
+
+constexpr qsizetype QMetaType::alignOf() const
+{
+ return d_ptr ? d_ptr->alignment : 0;
+}
+
+constexpr QMetaType::TypeFlags QMetaType::flags() const
+{
+ return d_ptr ? TypeFlags(d_ptr->flags) : TypeFlags{};
+}
+
+constexpr const QMetaObject *QMetaType::metaObject() const
+{
+ return d_ptr ? d_ptr->metaObject : nullptr;
+}
+
template<typename... T>
constexpr const QtPrivate::QMetaTypeInterface *const qt_metaTypeArray[] = {
QtPrivate::qMetaTypeInterfaceForType<T>()...
};
+constexpr const char *QMetaType::name() const
+{
+ return d_ptr ? d_ptr->name : nullptr;
+}
+
template<typename Unique,typename... T>
constexpr const QtPrivate::QMetaTypeInterface *const qt_incomplete_metaTypeArray[] = {
QtPrivate::qTryMetaTypeInterfaceForType<Unique, T>()...