In the Qt Docs, at the bottom of QFutureWatcher's Detailed Description section there's this statement: Any QFuture<T> can be watched by a QFutureWatcher<void> as well. This is useful if only status or progress information is needed; not the actual result data.
That statement fits what I'm trying to do - I only need the status/progress information. So I attempt the lines: QFutureWatcher<void> watcher; watcher.setFuture(QtConcurrent::mappedReduced(list, mapped, reduce)); This fails to compile with the error message: No viable conversion from 'QFuture<int>' to 'const QFuture<void>' Where my mapped() function has the form U function(const T &t); And my reduce() function has the form void function(int &result, const U &intermediate) If I explicitly cast the mappedReduced() return value to a QFuture<void>: watcher.setFuture(static_cast<QFuture<void>>( QtConcurrent::mappedReduced(list, mapped, reduce))); It compiles and seems to run fine, but I just wanted to double check this was intended behavior, or if there was a better way to do it? From the line in the docs, I assumed that the original assignment was fine and I wouldn't need to explicitly cast. Sean This e-mail, including any attached files, may contain confidential information, privileged information and/or trade secrets for the sole use of the intended recipient. Any review, use, distribution, or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message. _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest