diff options
| author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-11-01 16:53:26 +0100 |
|---|---|---|
| committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-11-20 14:28:31 +0100 |
| commit | 612a01be6513894ab1ec5a36b699a2142ba7f35c (patch) | |
| tree | 4018c688b737c9b010677d2c419cb719b9ed9e68 /src/corelib/tools/qscopedpointer.h | |
| parent | 5dd7e7b7a826d5d4314dffaaf20d465460616998 (diff) | |
Deprecate QScopedPointer::take()
We've decided that QScopedPointer shouldn't be movable,
because it would break the semantics of being "scoped"
(the pointer/pointee won't survive the scope).
Then, QScopedPointer shouldn't allow for take() either.
If you need those semantics, reach for unique_ptr.
[ChangeLog][QtCore][QScopedPointer] The take() function
has been deprecated. This was an API mistake, as it
allowed the pointer/pointee to escape from the scope,
defeating the point of the QScopedPointer class. If you
need such semantics, use std::unique_ptr (and call
release()).
Change-Id: I3236f085f763b04eb98e3242abc06f7c54fb3d8b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qscopedpointer.h')
| -rw-r--r-- | src/corelib/tools/qscopedpointer.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h index 5b2a15f5f6d..2297d7cb1e5 100644 --- a/src/corelib/tools/qscopedpointer.h +++ b/src/corelib/tools/qscopedpointer.h @@ -151,12 +151,15 @@ public: Cleanup::cleanup(oldD); } +#if QT_DEPRECATED_SINCE(6, 1) + QT_DEPRECATED_VERSION_X_6_1("Use std::unique_ptr instead, and call release().") T *take() noexcept { T *oldD = d; d = nullptr; return oldD; } +#endif void swap(QScopedPointer<T, Cleanup> &other) noexcept { |
