summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2012-07-24 10:53:26 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-25 00:48:20 +0200
commitdec9666dd4e6dc86d6d5a2520f0900c8ed508517 (patch)
tree6c7aa849a4e7c73208a5bfe065e7d3693e427b68 /tests
parenta5b029049771df1bdb01d5d8cf7e9e4bc964060f (diff)
Make qRegisterMetaType constexpr for built-in types.
For consistency with qMetaTypeId, and because we can. Change-Id: I6882a16ef3c0d84539048c9f2c201c4a2b2ca7ad Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
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);
}