summaryrefslogtreecommitdiffstats
path: root/examples/qtconcurrent
diff options
context:
space:
mode:
authorSona Kurazyan <sona.kurazyan@qt.io>2020-10-30 11:21:01 +0100
committerSona Kurazyan <sona.kurazyan@qt.io>2020-10-30 17:19:26 +0100
commitff0ba7e2d7b91fd5809cb314935a1ca1a436f6c9 (patch)
treeb1a9ca252e2953c23fdd62645e231ef8f92b4ac9 /examples/qtconcurrent
parent48a13327c663a9e1409cc98936190f3d1565fcc2 (diff)
Forbid implicit conversions between QFuture and other types
- Remove the casting operator of QFuture<T> to T. It calls QFuture::result(), which may lead to undefined behavior if the user has moved the results from QFuture via QFuture::takeResult() before trying to do the conversion. - Disable implicit conversion of QFuture<T> to QFuture<void>, by making the constructor explicit. If the users really intend to do the conversion, they should do it explicitly. [ChangeLog][Source-Incompatible Changes][QFuture] Implicit conversions of QFuture<T> to T and to QFuture<void> have been disabled. Use QFuture::result() or QFuture::takeResult() where you need to convert QFuture<T> to T. Use the explicit QFuture<void>(const QFuture<T> &) constructor to convert QFuture<T> to QFuture<void>. Change-Id: I153d4137d36365b1611ac934fb3ac2eb667fdd6c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'examples/qtconcurrent')
-rw-r--r--examples/qtconcurrent/wordcount/main.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/examples/qtconcurrent/wordcount/main.cpp b/examples/qtconcurrent/wordcount/main.cpp
index ae8542a761..f4de2886a8 100644
--- a/examples/qtconcurrent/wordcount/main.cpp
+++ b/examples/qtconcurrent/wordcount/main.cpp
@@ -157,7 +157,7 @@ int main(int argc, char** argv)
{
QElapsedTimer timer;
timer.start();
- WordCount total = mappedReduced(files, countWords, reduce);
+ WordCount total = mappedReduced(files, countWords, reduce).result();
mapReduceTime = timer.elapsed();
qDebug() << "MapReduce" << mapReduceTime;
}