diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2017-03-09 13:54:56 +0100 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-04-07 17:41:06 +0000 |
commit | 795a54ff9688697c033fc5d522f4c50c707d5924 (patch) | |
tree | 20468045310d1cc5e65a1faeb2508c96f41eff33 /tests | |
parent | 25d1bbb84939b6960f16e82254fc844839ddfa54 (diff) |
QDataStream: add operator<< and >> for std::nullptr_t
std::nullptr_t is nullary: it accepts only one value, nullptr. So we
don't need to read or write anything. This commit simply adds the two
operators that allow generic code to operate on std::nullptr_t if
required.
This commit also adds the actual use to QMetaType::load/save, even
though there's no change in behavior.
[ChangeLog][QtCore][QDataStream] Added operator<< and operator>>
overloads that take std::nullptr_t, to facilitate generic code.
Change-Id: Iae839f6a131a4f0784bffffd14aa37e7f62d2740
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp index 5b03b35780..0068411b94 100644 --- a/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp +++ b/tests/auto/corelib/io/qdatastream/tst_qdatastream.cpp @@ -77,6 +77,9 @@ private slots: void stream_QDateTime_data(); void stream_QDateTime(); + void stream_nullptr_t_data(); + void stream_nullptr_t(); + void stream_QFont_data(); void stream_QFont(); @@ -187,6 +190,7 @@ private: void writeQBrush(QDataStream *s); void writeQColor(QDataStream *s); void writeQByteArray(QDataStream *s); + void writenullptr_t(QDataStream *s); #ifndef QT_NO_CURSOR void writeQCursor(QDataStream *s); #endif @@ -216,6 +220,7 @@ private: void readQBrush(QDataStream *s); void readQColor(QDataStream *s); void readQByteArray(QDataStream *s); + void readnullptr_t(QDataStream *s); #ifndef QT_NO_CURSOR void readQCursor(QDataStream *s); #endif @@ -1008,6 +1013,11 @@ void tst_QDataStream::writeQByteArray(QDataStream *s) *s << d4; } +void tst_QDataStream::writenullptr_t(QDataStream *s) +{ + *s << nullptr; +} + void tst_QDataStream::readQByteArray(QDataStream *s) { QByteArray test(qByteArrayData(dataIndex(QTest::currentDataTag()))); @@ -1016,6 +1026,13 @@ void tst_QDataStream::readQByteArray(QDataStream *s) QCOMPARE(d4, test); } +void tst_QDataStream::readnullptr_t(QDataStream *s) +{ + std::nullptr_t ptr; + *s >> ptr; + QCOMPARE(ptr, nullptr); +} + // ************************************ #ifndef QT_NO_CURSOR static QCursor qCursorData(int index) @@ -1263,6 +1280,17 @@ void tst_QDataStream::stream_QDateTime() STREAM_IMPL(QDateTime); } +void tst_QDataStream::stream_nullptr_t_data() +{ + stream_data(1); // there's only one value possible +} + +void tst_QDataStream::stream_nullptr_t() +{ + using namespace std; + STREAM_IMPL(nullptr_t); +} + void tst_QDataStream::writeQDateTime(QDataStream *s) { QDateTime dt(qDateTimeData(dataIndex(QTest::currentDataTag()))); |