From fc208838aef911e4ac1a498115160e50491ceb1e Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Fri, 15 Sep 2017 17:08:15 +0100 Subject: QScopedPointer: add get() For self-consistency with QSharedPointer and minor consistency with std::unique_ptr (although QScopedPointer isn't movable, so we can't claim STL compatibility with it). [ChangeLog][QtCore][QScopedPointer] Added get(). Change-Id: Ib58f936afa0e0d5bce57a61d1467b69956f37ceb Reviewed-by: Thiago Macieira --- src/corelib/tools/qscopedpointer.cpp | 7 +++++++ src/corelib/tools/qscopedpointer.h | 5 +++++ tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/src/corelib/tools/qscopedpointer.cpp b/src/corelib/tools/qscopedpointer.cpp index 8d84b3beca..f3a4f0ca1f 100644 --- a/src/corelib/tools/qscopedpointer.cpp +++ b/src/corelib/tools/qscopedpointer.cpp @@ -145,6 +145,13 @@ QT_BEGIN_NAMESPACE still owns the object pointed to. */ +/*! + \fn T *QScopedPointer::get() const + \since 5.11 + + Same as data(). +*/ + /*! \fn T &QScopedPointer::operator*() const diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h index 141a3f8c70..eeed3afd83 100644 --- a/src/corelib/tools/qscopedpointer.h +++ b/src/corelib/tools/qscopedpointer.h @@ -140,6 +140,11 @@ public: return d; } + T *get() const Q_DECL_NOTHROW + { + return d; + } + bool isNull() const Q_DECL_NOTHROW { return !d; diff --git a/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp b/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp index a4b06d1b3b..b943b04e23 100644 --- a/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp +++ b/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp @@ -68,6 +68,7 @@ void tst_QScopedPointer::defaultConstructor() /* Check that the members, one, is correctly initialized. */ QScopedPointer p; QCOMPARE(p.data(), static_cast(0)); + QCOMPARE(p.get(), static_cast(0)); } void tst_QScopedPointer::dataOnDefaultConstructed() @@ -75,6 +76,7 @@ void tst_QScopedPointer::dataOnDefaultConstructed() QScopedPointer p; QCOMPARE(p.data(), static_cast(0)); + QCOMPARE(p.get(), static_cast(0)); } class MyClass @@ -113,6 +115,7 @@ void tst_QScopedPointer::reset() QScopedPointer p; p.reset(); QCOMPARE(p.data(), static_cast(0)); + QCOMPARE(p.get(), static_cast(0)); } /* Call reset() on an active value. */ @@ -120,6 +123,7 @@ void tst_QScopedPointer::reset() QScopedPointer p(new int(3)); p.reset(); QCOMPARE(p.data(), static_cast(0)); + QCOMPARE(p.get(), static_cast(0)); } /* Call reset() with a value, on an active value. */ @@ -129,6 +133,7 @@ void tst_QScopedPointer::reset() int *const value = new int(9); p.reset(value); QCOMPARE(*p.data(), 9); + QCOMPARE(*p.get(), 9); } /* Call reset() with a value, on default constructed value. */ @@ -138,6 +143,7 @@ void tst_QScopedPointer::reset() int *const value = new int(9); p.reset(value); QCOMPARE(*p.data(), 9); + QCOMPARE(*p.get(), 9); } } -- cgit v1.2.3