summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qsharedpointer.h
diff options
context:
space:
mode:
authorRoman Pasechnik <roman@pasechnik.net>2013-07-02 21:35:21 +0300
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2014-06-29 23:20:10 +0200
commit90a68926f311ac5bb8f7c53ac8370f9ff7f12c08 (patch)
treeec1f5305fb5cf8cc787c4749a95c06b06ab44ba8 /src/corelib/tools/qsharedpointer.h
parentbc19ab03b2e1ac71910ac5309e5ada90b5ffa9a5 (diff)
Add QEnableSharedFromThis class
It enables you to get a valid QSharedPointer instance to 'this', when all you have is 'this'. Task-number: QTBUG-7287 Change-Id: I3ed1c9c4d6b110fe02302312cc3c4a75e9d95a0c Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/corelib/tools/qsharedpointer.h')
-rw-r--r--src/corelib/tools/qsharedpointer.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h
index d9de48b7f4..431868ee08 100644
--- a/src/corelib/tools/qsharedpointer.h
+++ b/src/corelib/tools/qsharedpointer.h
@@ -131,6 +131,14 @@ public:
QSharedPointer<T> lock() const;
};
+template <class T>
+class QEnableSharedFromThis
+{
+public:
+ QSharedPointer<T> sharedFromThis();
+ QSharedPointer<const T> sharedFromThis() const;
+};
+
template<class T, class X> bool operator==(const QSharedPointer<T> &ptr1, const QSharedPointer<X> &ptr2);
template<class T, class X> bool operator!=(const QSharedPointer<T> &ptr1, const QSharedPointer<X> &ptr2);
template<class T, class X> bool operator==(const QSharedPointer<T> &ptr1, const X *ptr2);