diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2022-09-21 17:29:31 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2022-09-23 00:34:30 +0200 |
commit | 2c6c76374eeb649f40787c840f9b4b38e5d48ccb (patch) | |
tree | 05f838e9648a24267ad8cd425135dd0c3f456786 /src/corelib/global/qflags.h | |
parent | bf9ba81429076002614e19620588da6ca6b8cfd0 (diff) |
QFlags: Mark the operators declared in macro maybe_unused
Because, when used in a .cpp file, the compiler can verify that
they are. With warnings-are-errors this breaks compilation for me
on windows with clang++.
Pick-to: 6.2 6.4
Change-Id: Ib29c3b0b485be2c7d7cf6f1fa4541cac8fe32708
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/global/qflags.h')
-rw-r--r-- | src/corelib/global/qflags.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h index 92bcb0df9c..c791c26ac1 100644 --- a/src/corelib/global/qflags.h +++ b/src/corelib/global/qflags.h @@ -179,26 +179,35 @@ typedef QFlags<Enum> Flags; // These are opt-in, for backwards compatibility #define QT_DECLARE_TYPESAFE_OPERATORS_FOR_FLAGS_ENUM(Flags) \ +[[maybe_unused]] \ constexpr inline Flags operator~(Flags::enum_type e) noexcept \ { return ~Flags(e); } \ +[[maybe_unused]] \ constexpr inline void operator|(Flags::enum_type f1, int f2) noexcept = delete; #else #define QT_DECLARE_TYPESAFE_OPERATORS_FOR_FLAGS_ENUM(Flags) \ +[[maybe_unused]] \ constexpr inline QIncompatibleFlag operator|(Flags::enum_type f1, int f2) noexcept \ { return QIncompatibleFlag(int(f1) | f2); } #endif #define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags) \ +[[maybe_unused]] \ constexpr inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, Flags::enum_type f2) noexcept \ { return QFlags<Flags::enum_type>(f1) | f2; } \ +[[maybe_unused]] \ constexpr inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, QFlags<Flags::enum_type> f2) noexcept \ { return f2 | f1; } \ +[[maybe_unused]] \ constexpr inline QFlags<Flags::enum_type> operator&(Flags::enum_type f1, Flags::enum_type f2) noexcept \ { return QFlags<Flags::enum_type>(f1) & f2; } \ +[[maybe_unused]] \ constexpr inline QFlags<Flags::enum_type> operator&(Flags::enum_type f1, QFlags<Flags::enum_type> f2) noexcept \ { return f2 & f1; } \ +[[maybe_unused]] \ constexpr inline QFlags<Flags::enum_type> operator^(Flags::enum_type f1, Flags::enum_type f2) noexcept \ { return QFlags<Flags::enum_type>(f1) ^ f2; } \ +[[maybe_unused]] \ constexpr inline QFlags<Flags::enum_type> operator^(Flags::enum_type f1, QFlags<Flags::enum_type> f2) noexcept \ { return f2 ^ f1; } \ constexpr inline void operator+(Flags::enum_type f1, Flags::enum_type f2) noexcept = delete; \ |