diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-07-06 17:53:58 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2020-08-15 14:43:43 +0200 |
commit | 0e6a327f1464ab1127e424b47bb3ecd98c306a10 (patch) | |
tree | 1c5ac6de5e1acf5e69932bcbae66241ddeed64da /src/corelib/serialization/qdatastream.h | |
parent | df289c822dc818e3ac78a9975b7a3f98a1486347 (diff) |
Remove friend declarations that aren't required
Those are problematic as they are also interpreted as
forward declarations of methods that are defined inline in
qdatastream.h and might never get instantiated. This can
lead to problems if template code checks for the existence
of the method.
Change-Id: I4550a6bc70ebd7edc57fe0420b89b453195971d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/corelib/serialization/qdatastream.h')
-rw-r--r-- | src/corelib/serialization/qdatastream.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h index 93eaaff43b..3a234ab15e 100644 --- a/src/corelib/serialization/qdatastream.h +++ b/src/corelib/serialization/qdatastream.h @@ -396,11 +396,16 @@ inline QDataStream &QDataStream::operator<<(quint64 i) template <typename Enum> inline QDataStream &operator<<(QDataStream &s, QFlags<Enum> e) -{ return s << e.i; } +{ return s << typename QFlags<Enum>::Int(e); } template <typename Enum> inline QDataStream &operator>>(QDataStream &s, QFlags<Enum> &e) -{ return s >> e.i; } +{ + typename QFlags<Enum>::Int i; + s >> i; + e = QFlag(i); + return s; +} template <typename T> typename std::enable_if_t<std::is_enum<T>::value, QDataStream &> |