summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index 230138d40d..b5169fe839 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -1681,11 +1681,19 @@ void tst_QMetaType::metaObject()
#define METATYPE_ID_FUNCTION(Type, MetaTypeId, Name) \
case ::qMetaTypeId< Name >(): metaType = MetaTypeIdStruct<MetaTypeId>::Value;
+#define REGISTER_METATYPE_FUNCTION(Type, MetaTypeId, Name) \
+ case qRegisterMetaType< Name >(): metaType = RegisterMetaTypeStruct<MetaTypeId>::Value;
+
template<int>
struct MetaTypeIdStruct
{
};
+template<int>
+struct RegisterMetaTypeStruct
+{
+};
+
#define METATYPE_ID_STRUCT(Type, MetaTypeId, Name) \
template<> \
struct MetaTypeIdStruct< ::qMetaTypeId< Name >()> \
@@ -1693,14 +1701,28 @@ struct MetaTypeIdStruct< ::qMetaTypeId< Name >()> \
enum { Value = ::qMetaTypeId< Name >() }; \
};
+#define REGISTER_METATYPE_STRUCT(Type, MetaTypeId, Name) \
+template<> \
+struct RegisterMetaTypeStruct<qRegisterMetaType< Name >()> \
+{ \
+ enum { Value = qRegisterMetaType< Name >() }; \
+};
+
#if defined(Q_COMPILER_CONSTEXPR)
QT_FOR_EACH_STATIC_TYPE(METATYPE_ID_STRUCT)
+QT_FOR_EACH_STATIC_TYPE(REGISTER_METATYPE_STRUCT)
template<int i = ::qMetaTypeId<int>()>
struct MetaTypeIdStructDefaultTemplateValue
{
enum { Value };
};
+
+template<int i = qRegisterMetaType<int>()>
+struct RegisterMetaTypeStructDefaultTemplateValue
+{
+ enum { Value };
+};
#endif
void tst_QMetaType::constexprMetaTypeIds()
@@ -1715,6 +1737,14 @@ void tst_QMetaType::constexprMetaTypeIds()
#endif
default:;
}
+
+ switch (id) {
+#if defined(Q_COMPILER_CONSTEXPR)
+ QT_FOR_EACH_STATIC_TYPE(REGISTER_METATYPE_FUNCTION)
+ metaType = RegisterMetaTypeStructDefaultTemplateValue<>::Value;
+#endif
+ default:;
+ }
Q_UNUSED(metaType);
}