From 7860b9699b6a20fdf6e61d89df28e86b1e9a4dc4 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Tue, 7 Jan 2020 18:34:54 +0100 Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14 Starting from version 5.14, Qt provides stream operators for enum types, which collide with the ones we ship in types.h. Disable Quassel's stream operators when compiling against Qt 5.14 or later. Add a unit test that ensures that enum serialization honors the width of the underlying type. (original patch trimmed) --- src/common/types.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/types.h b/src/common/types.h index 467d9fb..c4b9f36 100644 --- a/src/common/types.h +++ b/src/common/types.h @@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress) typedef QList MsgIdList; typedef QList BufferIdList; +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) /** * Catch-all stream serialization operator for enum types. * @@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) { value = static_cast(v); return in; } +#endif // Exceptions -- 2.24.1