summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/thread/qfuture.h8
-rw-r--r--src/corelib/thread/qfutureinterface.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/src/corelib/thread/qfuture.h b/src/corelib/thread/qfuture.h
index 8c04b8c4376..ab08f7861c7 100644
--- a/src/corelib/thread/qfuture.h
+++ b/src/corelib/thread/qfuture.h
@@ -300,6 +300,8 @@ private:
template<class U>
friend class QFuture;
+ friend class QFutureInterfaceBase;
+
template<class Function, class ResultType, class ParentResultType>
friend class QtPrivate::Continuation;
@@ -430,6 +432,12 @@ inline QFuture<void> QFutureInterface<void>::future()
return QFuture<void>(this);
}
+template<typename T>
+QFutureInterfaceBase QFutureInterfaceBase::get(const QFuture<T> &future)
+{
+ return future.d;
+}
+
Q_DECLARE_SEQUENTIAL_ITERATOR(Future)
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qfutureinterface.h b/src/corelib/thread/qfutureinterface.h
index 6924378bf19..ecc31d6ec35 100644
--- a/src/corelib/thread/qfutureinterface.h
+++ b/src/corelib/thread/qfutureinterface.h
@@ -177,6 +177,9 @@ public:
// ### Qt 7: inline
void swap(QFutureInterfaceBase &other) noexcept;
+ template<typename T>
+ static QFutureInterfaceBase get(const QFuture<T> &future); // implemented in qfuture.h
+
protected:
// ### Qt 7: remove const from refT/derefT
bool refT() const noexcept;