7#include <QtCore/qglobal.h>
8#include <QtCore/qfutureinterface.h>
18template<
class T,
class U>
26 static_assert (std::is_move_constructible_v<T>
27 || std::is_same_v<T, void>,
28 "A move-constructible type or type void is required");
35 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_MOVE_AND_SWAP(
QPromise)
44 d.cleanContinuation();
49 template<
typename...Args, std::enable_if_t<std::is_constructible_v<T, Args...>,
bool> =
true>
52 return d.reportAndEmplaceResult(
index, std::forward<Args>(
args)...);
54 template<
typename...Args, std::enable_if_t<std::is_constructible_v<T, Args...>,
bool> =
true>
57 return d.reportAndEmplaceResult(-1, std::forward<Args>(
args)...);
59 template<
typename U = T,
typename = QtPrivate::EnableIfSameOrConvertible<U, T>>
62 return d.reportAndEmplaceResult(
index, std::forward<U>(
result));
65 {
return d.reportResults(
result); }
66#ifndef QT_NO_EXCEPTIONS
68#if QT_VERSION < QT_VERSION_CHECK(7, 0, 0)
74 void start() { d.reportStarted(); }
75 void finish() { d.reportFinished(); }
82 void setProgressRange(
int minimum,
int maximum) { d.setProgressRange(minimum, maximum); }
86 d.setProgressValueAndText(progressValue, progressText);
bool emplaceResultAt(int index, Args &&...args)
QPromise(QFutureInterface< T > &&other) noexcept
void setProgressValue(int progressValue)
QFuture< T > future() const
void setException(const QException &e)
bool addResults(const QList< T > &result)
void setProgressRange(int minimum, int maximum)
bool addResult(U &&result, int index=-1)
void setProgressValueAndText(int progressValue, const QString &progressText)
bool emplaceResult(Args &&...args)
void suspendIfRequested()
void setException(const std::exception_ptr &e)
void swap(QPromise< T > &other) noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
std::enable_if_t< std::is_convertible_v< T, U > > EnableIfSameOrConvertible
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
[7]
#define QT_REQUIRE_CONFIG(feature)
QFuture< void > future
[5]