diff --git a/tests/auto/corelib/tools/qset/tst_qset.cpp b/tests/auto/corelib/tools/qset/tst_qset.cpp index cea77ec16b2..ba42ccb7d79 100644 --- a/tests/auto/corelib/tools/qset/tst_qset.cpp +++ b/tests/auto/corelib/tools/qset/tst_qset.cpp @@ -33,6 +33,7 @@ private slots: void cpp17ctad(); void remove(); void removeOnlyDetachesIfSomethingGetsRemoved(); + void removeIfDoesNotAllowThePredicateToModifyTheElement(); void contains(); void containsSet(); void begin(); @@ -424,6 +425,17 @@ void tst_QSet::removeOnlyDetachesIfSomethingGetsRemoved() QVERIFY(copy.isDetached()); } +void tst_QSet::removeIfDoesNotAllowThePredicateToModifyTheElement() +{ + QSet set = {0, 1, 2, 3}; + set.removeIf([](auto &&e) { + if constexpr (!std::is_const_v>) + e *= 2; + return false; + }); + QCOMPARE(set, QSet({0, 1, 2, 3})); +} + void tst_QSet::contains() { QSet set1;