diff options
-rw-r--r-- | src/corelib/global/qtypeinfo.h | 4 | ||||
-rw-r--r-- | tests/auto/corelib/global/qflags/tst_qflags.cpp | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/corelib/global/qtypeinfo.h b/src/corelib/global/qtypeinfo.h index 6297b35b9c..815be935f7 100644 --- a/src/corelib/global/qtypeinfo.h +++ b/src/corelib/global/qtypeinfo.h @@ -161,6 +161,10 @@ public: \ template<> \ Q_DECLARE_TYPEINFO_BODY(TYPE, FLAGS) +/* Specialize QTypeInfo for QFlags<T> */ +template<typename T> class QFlags; +template<typename T> +Q_DECLARE_TYPEINFO_BODY(QFlags<T>, Q_PRIMITIVE_TYPE); /* Specialize a shared type with: 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" |