diff --git a/src/corelib/compat/removed_api.cpp b/src/corelib/compat/removed_api.cpp index 6aa0d1cee95..0553d32807f 100644 --- a/src/corelib/compat/removed_api.cpp +++ b/src/corelib/compat/removed_api.cpp @@ -919,6 +919,11 @@ QUrl QUrl::fromEncoded(const QByteArray &input, ParsingMode mode) #include "qdatastream.h" // inlined API +QDataStream &QDataStream::operator<<(bool i) +{ + return (*this << qint8(i)); +} + #include "qdir.h" // inlined API bool QDir::operator==(const QDir &dir) const diff --git a/src/corelib/serialization/qdatastream.cpp b/src/corelib/serialization/qdatastream.cpp index 29fe9978011..14bbae53f43 100644 --- a/src/corelib/serialization/qdatastream.cpp +++ b/src/corelib/serialization/qdatastream.cpp @@ -1267,18 +1267,13 @@ QDataStream &QDataStream::operator<<(qint64 i) */ /*! + \fn QDataStream &QDataStream::operator<<(bool i) + \overload + Writes a boolean value, \a i, to the stream. Returns a reference to the stream. */ -QDataStream &QDataStream::operator<<(bool i) -{ - CHECK_STREAM_WRITE_PRECOND(*this) - if (!dev->putChar(qint8(i))) - q_status = WriteFailed; - return *this; -} - /*! \overload diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h index 616f6330d94..5aa5cc28cdd 100644 --- a/src/corelib/serialization/qdatastream.h +++ b/src/corelib/serialization/qdatastream.h @@ -167,7 +167,18 @@ public: QDataStream &operator<<(qint64 i); QDataStream &operator<<(quint64 i); QDataStream &operator<<(std::nullptr_t) { return *this; } +#if QT_CORE_REMOVED_SINCE(6, 8) || defined(Q_QDOC) QDataStream &operator<<(bool i); +#endif +#if !defined(Q_QDOC) + // Disable implicit conversions to bool (e.g. for pointers) + template , bool>, bool> = true> + QDataStream &operator<<(T i) + { + return (*this << qint8(i)); + } +#endif #if QT_CORE_REMOVED_SINCE(6, 3) QDataStream &operator<<(qfloat16 f); #endif @@ -176,9 +187,6 @@ public: QDataStream &operator<<(const char *str); QDataStream &operator<<(char16_t c); QDataStream &operator<<(char32_t c); - QDataStream &operator<<(const volatile void *) = delete; - template - QDataStream &operator<<(T C::*) = delete; #if QT_DEPRECATED_SINCE(6, 11) QT_DEPRECATED_VERSION_X_6_11("Use an overload that takes qint64 length.")