From 4b57246a616b18d1f1cc2f7e1a93466a8d5db560 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 21 Sep 2020 15:51:12 +0200 Subject: Remove default ctor for QIterable MSVC has strange problems with it and we don't actually need it. Change-Id: I2c443946d52d475208800f310b5f910da165c99b Reviewed-by: Fabian Kosmale --- src/corelib/kernel/qassociativeiterable.h | 5 ++++- src/corelib/kernel/qiterable.h | 2 -- src/corelib/kernel/qmetatype.cpp | 4 ++-- src/corelib/kernel/qsequentialiterable.h | 5 ++++- tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp | 8 ++++---- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/corelib/kernel/qassociativeiterable.h b/src/corelib/kernel/qassociativeiterable.h index 1122fd118d..40f1768d5b 100644 --- a/src/corelib/kernel/qassociativeiterable.h +++ b/src/corelib/kernel/qassociativeiterable.h @@ -111,7 +111,10 @@ public: { } - QAssociativeIterable() = default; + QAssociativeIterable() + : QIterable(QMetaAssociation(), nullptr) + { + } template QAssociativeIterable(const QMetaAssociation &metaAssociation, Pointer iterable) diff --git a/src/corelib/kernel/qiterable.h b/src/corelib/kernel/qiterable.h index 20d937591a..c77a158420 100644 --- a/src/corelib/kernel/qiterable.h +++ b/src/corelib/kernel/qiterable.h @@ -450,8 +450,6 @@ protected: Container m_metaContainer; public: - QIterable() = default; - template QIterable(const Container &metaContainer, const T *p) : m_iterable(p), m_metaContainer(metaContainer) diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 87835be25c..798d43686a 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -2036,7 +2036,7 @@ static bool viewAsSequentialIterable(QMetaType fromType, void *from, void *to) return true; } - QIterable j; + QIterable j(QMetaSequence(), nullptr); if (QMetaType::view( fromType, from, QMetaType::fromType>(), &j)) { i = std::move(j); @@ -2118,7 +2118,7 @@ static bool viewAsAssociativeIterable(QMetaType fromType, void *from, void *to) return true; } - QIterable j; + QIterable j(QMetaAssociation(), nullptr); if (QMetaType::view( fromType, from, QMetaType::fromType>(), &j)) { i = std::move(j); diff --git a/src/corelib/kernel/qsequentialiterable.h b/src/corelib/kernel/qsequentialiterable.h index 72e17cfc65..0bac435d7b 100644 --- a/src/corelib/kernel/qsequentialiterable.h +++ b/src/corelib/kernel/qsequentialiterable.h @@ -104,7 +104,10 @@ public: { } - QSequentialIterable() = default; + QSequentialIterable() + : QIterable(QMetaSequence(), nullptr) + { + } template QSequentialIterable(const QMetaSequence &metaSequence, Pointer iterable) diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 8122220b88..0eefd95ac7 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -4758,8 +4758,8 @@ void tst_QVariant::sequentialIterableAppend() { QList container { 1, 2 }; auto variant = QVariant::fromValue(container); - QVERIFY(variant.canConvert>()); - QSequentialIterable asIterable = variant.view>(); + QVERIFY(variant.canConvert()); + QSequentialIterable asIterable = variant.view(); const int i = 3, j = 4; void *mutableIterable = asIterable.mutableIterable(); asIterable.metaContainer().addValueAtEnd(mutableIterable, &i); @@ -4778,8 +4778,8 @@ void tst_QVariant::sequentialIterableAppend() { QSet container { QByteArray{"hello"}, QByteArray{"world"} }; auto variant = QVariant::fromValue(std::move(container)); - QVERIFY(variant.canConvert>()); - QSequentialIterable asIterable = variant.view>(); + QVERIFY(variant.canConvert()); + QSequentialIterable asIterable = variant.view(); QByteArray qba1 {"goodbye"}; QByteArray qba2 { "moon" }; void *mutableIterable = asIterable.mutableIterable(); -- cgit v1.2.3