From 21c344a221c1d7712a04d990958b211e2dd8a263 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 16 Jun 2023 08:29:56 +0200 Subject: [PATCH] QScoped(Array)Pointer: remove the class-level [[nodiscard]] It was used as a work-around for constructor-level [[nodiscard]] missing in C++17, but a) compilers are free to implement [[nodiscard]] for constructors in C++17 (P1771 was not considered a normative change, just a clarification of the existing wording), and b) prevents useful code that returns such types from functions. Pick-to: 6.6 Task-number: QTBUG-104164 Change-Id: I440b418d58e86118e84689adb06d239ca598afcc Reviewed-by: Thiago Macieira --- src/corelib/tools/qscopedpointer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h index 1637bb40a5..2f86d45050 100644 --- a/src/corelib/tools/qscopedpointer.h +++ b/src/corelib/tools/qscopedpointer.h @@ -67,7 +67,7 @@ typedef QScopedPointerObjectDeleteLater QScopedPointerDeleteLater; #endif template > -class [[nodiscard]] QScopedPointer +class QScopedPointer { public: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) @@ -187,7 +187,7 @@ private: }; template > -class [[nodiscard]] QScopedArrayPointer : public QScopedPointer +class QScopedArrayPointer : public QScopedPointer { template using if_same_type = typename std::enable_if::type, Ptr>::value, bool>::type;