diff options
Diffstat (limited to 'src/corelib/serialization/qdatastream.h')
-rw-r--r-- | src/corelib/serialization/qdatastream.h | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h index 81134f74b0..cfcd89333b 100644 --- a/src/corelib/serialization/qdatastream.h +++ b/src/corelib/serialization/qdatastream.h @@ -55,7 +55,6 @@ class QByteArray; class QIODevice; template <typename T> class QList; -template <typename T> class QLinkedList; template <typename T> class QVector; template <typename T> class QSet; template <class Key, class T> class QHash; @@ -100,10 +99,19 @@ public: Qt_5_11 = Qt_5_10, Qt_5_12 = 18, Qt_5_13 = 19, -#if QT_VERSION >= 0x050e00 + Qt_5_14 = Qt_5_13, +#if QT_VERSION >= 0x050f00 + Qt_5_15 = Qt_5_14, + Qt_DefaultCompiledVersion = Qt_5_15 +#elif QT_VERSION >= 0x060000 + Qt_6_0 = Qt_5_15, + Qt_DefaultCompiledVersion = Qt_6_0 +#else + Qt_DefaultCompiledVersion = Qt_5_14 +#endif +#if QT_VERSION >= 0x060100 #error Add the datastream version for this Qt version and update Qt_DefaultCompiledVersion #endif - Qt_DefaultCompiledVersion = Qt_5_13 }; enum ByteOrder { @@ -377,25 +385,23 @@ inline QDataStream &operator>>(QDataStream &s, QFlags<Enum> &e) { return s >> e.i; } template <typename T> -inline QDataStream &operator>>(QDataStream &s, QList<T> &l) -{ - return QtPrivate::readArrayBasedContainer(s, l); -} +typename std::enable_if<std::is_enum<T>::value, QDataStream &>::type& +operator<<(QDataStream &s, const T &t) +{ return s << static_cast<typename std::underlying_type<T>::type>(t); } template <typename T> -inline QDataStream &operator<<(QDataStream &s, const QList<T> &l) -{ - return QtPrivate::writeSequentialContainer(s, l); -} +typename std::enable_if<std::is_enum<T>::value, QDataStream &>::type& +operator>>(QDataStream &s, T &t) +{ return s >> reinterpret_cast<typename std::underlying_type<T>::type &>(t); } template <typename T> -inline QDataStream &operator>>(QDataStream &s, QLinkedList<T> &l) +inline QDataStream &operator>>(QDataStream &s, QList<T> &l) { - return QtPrivate::readListBasedContainer(s, l); + return QtPrivate::readArrayBasedContainer(s, l); } template <typename T> -inline QDataStream &operator<<(QDataStream &s, const QLinkedList<T> &l) +inline QDataStream &operator<<(QDataStream &s, const QList<T> &l) { return QtPrivate::writeSequentialContainer(s, l); } |