summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qsharedpointer_impl.h
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2012-03-06 08:37:33 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-16 19:27:59 +0100
commit0ebca8f46fdfb8c99926cf28717b62c8cd741858 (patch)
tree5d94df9183a062c28f85fb422834b58003c86396 /src/corelib/tools/qsharedpointer_impl.h
parent0731c90eec594224954ea1c6677e6bf2cff50e51 (diff)
QSharedPointer: add reset() member functions
These have been added for std::shared_ptr compatibility, but in particular to allow tst_qnetworkreply && friends to drop the implicit conversions added to QSP by inheritance, so QSP can become final. Change-Id: I0f0401b02125d65622e52393b40a3b10bd9a850c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qsharedpointer_impl.h')
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h
index 81ce17889e..fadb4e0586 100644
--- a/src/corelib/tools/qsharedpointer_impl.h
+++ b/src/corelib/tools/qsharedpointer_impl.h
@@ -510,6 +510,13 @@ public:
inline void swap(QSharedPointer &other)
{ QSharedPointer<T>::internalSwap(other); }
+ inline void reset() { clear(); }
+ inline void reset(T *t)
+ { QSharedPointer copy(t); swap(copy); }
+ template <typename Deleter>
+ inline void reset(T *t, Deleter deleter)
+ { QSharedPointer copy(t, deleter); swap(copy); }
+
template <class X>
QSharedPointer<X> staticCast() const
{