diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2012-09-20 15:06:11 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-28 23:50:10 +0200 |
commit | ac9be327f8dc788a964b77c6bcdf0391c85c9cbd (patch) | |
tree | e7f66c52a02cf1a8c260c47d1bba0d400acad82a /tests/auto/corelib/global/qflags | |
parent | 26f238a80d38d6e1da0a6d485dd0b185b73c46ef (diff) |
QFlags: use unsigned int when the enum's underlying is unsigned
Replace storage and operator int() return types with unsigned int
if the enum is unsigned.
This fixes a number of exisiting warnings, in particular with
Qt::MouseButton under GCC.
Change-Id: Ia12d36212329aec3e9d62a5fbd38809a6c2b36d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/global/qflags')
-rw-r--r-- | tests/auto/corelib/global/qflags/tst_qflags.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/tests/auto/corelib/global/qflags/tst_qflags.cpp b/tests/auto/corelib/global/qflags/tst_qflags.cpp index f608dd6f93..215462606b 100644 --- a/tests/auto/corelib/global/qflags/tst_qflags.cpp +++ b/tests/auto/corelib/global/qflags/tst_qflags.cpp @@ -48,6 +48,7 @@ private slots: void testFlagZeroFlag() const; void testFlagMultiBits() const; void constExpr(); + void signedness(); }; void tst_QFlags::testFlag() const @@ -123,10 +124,23 @@ void tst_QFlags::constExpr() #endif } +void tst_QFlags::signedness() +{ + // these are all 'true' on GCC, but since the std says the + // underlying type is implementation-defined, we need to allow for + // a different signedness, so we only check that the relative + // signedness of the types matches: + Q_STATIC_ASSERT((QtPrivate::is_unsigned<Qt::MouseButton>::value == + QtPrivate::is_unsigned<Qt::MouseButtons::Int>::value)); + + Q_STATIC_ASSERT((QtPrivate::is_signed<Qt::AlignmentFlag>::value == + QtPrivate::is_signed<Qt::Alignment::Int>::value)); +} + // (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_DECLARE_FLAGS( MyFlags, MyEnum ) +Q_DECLARE_OPERATORS_FOR_FLAGS( MyFlags ) Q_STATIC_ASSERT( !QTypeInfo<MyFlags>::isComplex ); Q_STATIC_ASSERT( !QTypeInfo<MyFlags>::isStatic ); |