diff options
| author | Marc Mutz <marc.mutz@qt.io> | 2023-06-16 08:29:56 +0200 |
|---|---|---|
| committer | Marc Mutz <marc.mutz@qt.io> | 2023-06-20 07:34:09 +0200 |
| commit | 21c344a221c1d7712a04d990958b211e2dd8a263 (patch) | |
| tree | 1408131b9902e2e4ff3daffb43918d56c6024430 /src | |
| parent | c823bc2fdba412e867373ef60be8c48feb3c1a48 (diff) | |
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 <thiago.macieira@intel.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/corelib/tools/qscopedpointer.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h index 1637bb40a5a..2f86d450501 100644 --- a/src/corelib/tools/qscopedpointer.h +++ b/src/corelib/tools/qscopedpointer.h @@ -67,7 +67,7 @@ typedef QScopedPointerObjectDeleteLater<QObject> QScopedPointerDeleteLater; #endif template <typename T, typename Cleanup = QScopedPointerDeleter<T> > -class [[nodiscard]] QScopedPointer +class QScopedPointer { public: explicit QScopedPointer(T *p = nullptr) noexcept : d(p) @@ -187,7 +187,7 @@ private: }; template <typename T, typename Cleanup = QScopedPointerArrayDeleter<T> > -class [[nodiscard]] QScopedArrayPointer : public QScopedPointer<T, Cleanup> +class QScopedArrayPointer : public QScopedPointer<T, Cleanup> { template <typename Ptr> using if_same_type = typename std::enable_if<std::is_same<typename std::remove_cv<T>::type, Ptr>::value, bool>::type; |
