summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qscopedpointer.h
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-11-01 16:53:26 +0100
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-11-20 14:28:31 +0100
commit612a01be6513894ab1ec5a36b699a2142ba7f35c (patch)
tree4018c688b737c9b010677d2c419cb719b9ed9e68 /src/corelib/tools/qscopedpointer.h
parent5dd7e7b7a826d5d4314dffaaf20d465460616998 (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.h3
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
{