From 0e6a327f1464ab1127e424b47bb3ecd98c306a10 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 6 Jul 2020 17:53:58 +0200 Subject: 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 Reviewed-by: Fabian Kosmale --- src/corelib/serialization/qdatastream.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/corelib/serialization/qdatastream.h') 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 inline QDataStream &operator<<(QDataStream &s, QFlags e) -{ return s << e.i; } +{ return s << typename QFlags::Int(e); } template inline QDataStream &operator>>(QDataStream &s, QFlags &e) -{ return s >> e.i; } +{ + typename QFlags::Int i; + s >> i; + e = QFlag(i); + return s; +} template typename std::enable_if_t::value, QDataStream &> -- cgit v1.2.3