diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h index 93dbedc9305..feeb488acd1 100644 --- a/src/corelib/global/qflags.h +++ b/src/corelib/global/qflags.h @@ -48,6 +48,8 @@ QT_BEGIN_NAMESPACE +class QDataStream; + class QFlag { int i; @@ -95,6 +97,8 @@ class QFlags struct Private; typedef int (Private::*Zero); + template friend QDataStream &operator>>(QDataStream &, QFlags &); + template friend QDataStream &operator<<(QDataStream &, QFlags); public: #if defined(Q_CC_MSVC) || defined(Q_QDOC) // see above for MSVC diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h index ecd55f71aee..db1bbfbd63b 100644 --- a/src/corelib/io/qdatastream.h +++ b/src/corelib/io/qdatastream.h @@ -359,6 +359,14 @@ inline QDataStream &QDataStream::operator<<(quint32 i) inline QDataStream &QDataStream::operator<<(quint64 i) { return *this << qint64(i); } +template +inline QDataStream &operator<<(QDataStream &s, QFlags e) +{ return s << e.i; } + +template +inline QDataStream &operator>>(QDataStream &s, QFlags &e) +{ return s >> e.i; } + template inline QDataStream &operator>>(QDataStream &s, QList &l) {