diff --git a/src/corelib/kernel/qmetacontainer.h b/src/corelib/kernel/qmetacontainer.h index 68d62bd2ea4..bdbf2ae369d 100644 --- a/src/corelib/kernel/qmetacontainer.h +++ b/src/corelib/kernel/qmetacontainer.h @@ -982,6 +982,8 @@ public: return a.d() != b.d(); } + const QtMetaContainerPrivate::QMetaSequenceInterface *iface() const { return d(); } + private: template struct MetaSequence @@ -1176,6 +1178,8 @@ public: return a.d() != b.d(); } + const QtMetaContainerPrivate::QMetaAssociationInterface *iface() const { return d(); } + private: template struct MetaAssociation diff --git a/tests/auto/corelib/kernel/qmetacontainer/tst_qmetacontainer.cpp b/tests/auto/corelib/kernel/qmetacontainer/tst_qmetacontainer.cpp index 606e94787a2..2eeb7ede8a7 100644 --- a/tests/auto/corelib/kernel/qmetacontainer/tst_qmetacontainer.cpp +++ b/tests/auto/corelib/kernel/qmetacontainer/tst_qmetacontainer.cpp @@ -497,6 +497,10 @@ void tst_QMetaContainer::testSequence() QVERIFY(metaSequence.compareConstIterator(constIt, constEnd)); metaSequence.destroyConstIterator(constIt); metaSequence.destroyConstIterator(constEnd); + + QVERIFY(metaSequence.iface() != nullptr); + QMetaSequence defaultConstructed; + QVERIFY(defaultConstructed.iface() == nullptr); } void tst_QMetaContainer::testAssociation_data() @@ -722,6 +726,10 @@ void tst_QMetaContainer::testAssociation() QVERIFY(metaAssociation.compareConstIterator(constIt, constEnd)); metaAssociation.destroyConstIterator(constIt); metaAssociation.destroyConstIterator(constEnd); + + QVERIFY(metaAssociation.iface() != nullptr); + QMetaSequence defaultConstructed; + QVERIFY(defaultConstructed.iface() == nullptr); } QTEST_MAIN(tst_QMetaContainer)