diff --git a/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp b/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp index 7f01c6f964a..12556fa8bac 100644 --- a/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp +++ b/tests/auto/corelib/kernel/qpointer/tst_qpointer.cpp @@ -19,6 +19,7 @@ public: private slots: void constructors(); + void ctad(); void conversion(); void destructor(); void assignment_operators(); @@ -45,6 +46,47 @@ void tst_QPointer::constructors() QCOMPARE(p3, QPointer(this)); } +void tst_QPointer::ctad() +{ + + { + QObject o; + QPointer po = &o; + static_assert(std::is_same_v>); + QPointer poc = po; + static_assert(std::is_same_v>); + QPointer pom = std::move(po); + static_assert(std::is_same_v>); + } + { + const QObject co; + QPointer pco = &co; + static_assert(std::is_same_v>); + QPointer pcoc = pco; + static_assert(std::is_same_v>); + QPointer pcom = std::move(pco); + static_assert(std::is_same_v>); + } + { + QFile f; + QPointer pf = &f; + static_assert(std::is_same_v>); + QPointer pfc = pf; + static_assert(std::is_same_v>); + QPointer pfm = std::move(pf); + static_assert(std::is_same_v>); + } + { + const QFile cf; + QPointer pcf = &cf; + static_assert(std::is_same_v>); + QPointer pcfc = pcf; + static_assert(std::is_same_v>); + QPointer pcfm = std::move(pcf); + static_assert(std::is_same_v>); + } +} + void tst_QPointer::conversion() { // copy-conversion: