summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/global/qflags
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2012-02-26 23:01:46 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-29 23:36:47 +0100
commitff004175bcd5dc23f8c080cd390b04117c9f51df (patch)
tree752f4a48f2b26373db06e753071e358a4783c9a2 /tests/auto/corelib/global/qflags
parent3f1a4be30263a676b7e188bf6cfa809c7788c87f (diff)
QFlags: mark as Q_PRIMITIVE_TYPE
I originally tried to put Q_DECLARE_TYPEINFOs into Q_DECLARE_OPERATORS_FOR_FLAGS, to declare not only the flags type, but also the underlying enum as primitive, but too many users (arguably correctly) used Q_DECLARE_OPERATORS_FOR_FLAGS at (non-global) namespace scope where QTypeInfo would have been specialised in the wrong namespace. So specialise QTypeInfo for QFlags<T> only. Change-Id: I4af6e29aefbd9460a3d2bc6405f03cdf6b1096bc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'tests/auto/corelib/global/qflags')
-rw-r--r--tests/auto/corelib/global/qflags/tst_qflags.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp
index d466d7b8d8..2794c174ba 100644
--- a/tests/auto/corelib/global/qflags/tst_qflags.cpp
+++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp
@@ -123,6 +123,15 @@ void tst_QFlags::constExpr()
#endif
}
+// (statically) check QTypeInfo for QFlags instantiations:
+enum MyEnum { Zero, One, Two, Four=4 };
+Q_DECLARE_FLAGS( MyFlags, MyEnum );
+Q_DECLARE_OPERATORS_FOR_FLAGS( MyFlags );
+
+Q_STATIC_ASSERT( !QTypeInfo<MyFlags>::isComplex );
+Q_STATIC_ASSERT( !QTypeInfo<MyFlags>::isStatic );
+Q_STATIC_ASSERT( !QTypeInfo<MyFlags>::isLarge );
+Q_STATIC_ASSERT( !QTypeInfo<MyFlags>::isPointer );
QTEST_MAIN(tst_QFlags)
#include "tst_qflags.moc"