diff options
Diffstat (limited to 'tests/auto/testlib/selftests/cmptest')
-rw-r--r-- | tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp index 9ada718682..3a8d27631e 100644 --- a/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp +++ b/tests/auto/testlib/selftests/cmptest/tst_cmptest.cpp @@ -147,6 +147,7 @@ private slots: void verify2(); void tryVerify(); void tryVerify2(); + void verifyExplicitOperatorBool(); }; enum MyUnregisteredEnum { MyUnregisteredEnumValue1, MyUnregisteredEnumValue2 }; @@ -458,5 +459,21 @@ void tst_Cmptest::tryVerify2() QTRY_VERIFY2_WITH_TIMEOUT(opaqueFunc() < 2, QByteArray::number(opaqueFunc()).constData(), 1); } +void tst_Cmptest::verifyExplicitOperatorBool() +{ + struct ExplicitOperatorBool { + int m_i; + explicit ExplicitOperatorBool(int i) : m_i(i) {} + explicit operator bool() const { return m_i > 0; } + bool operator !() const { return !bool(*this); } + }; + + ExplicitOperatorBool val1(42); + QVERIFY(val1); + + ExplicitOperatorBool val2(-273); + QVERIFY(!val2); +} + QTEST_MAIN(tst_Cmptest) #include "tst_cmptest.moc" |