summaryrefslogtreecommitdiffstats
path: root/src/concurrent/qtconcurrentreducekernel.h
diff options
context:
space:
mode:
authorSona Kurazyan <[email protected]>2020-10-09 18:21:17 +0200
committerSona Kurazyan <[email protected]>2020-10-30 17:19:26 +0100
commit4d9658b7cd2b072dd8b24d9bb6844b7cbcf22ad0 (patch)
treeab43ab1986e351468b3f099ee1b02752e4479f81 /src/concurrent/qtconcurrentreducekernel.h
parentff0ba7e2d7b91fd5809cb314935a1ca1a436f6c9 (diff)
Use universal references for passing callables in QtConcurrent
Task-number: QTBUG-87596 Change-Id: I219f08d73b97317820ec6e329ab1e6c89c0545f1 Reviewed-by: Jarek Kobus <[email protected]> Reviewed-by: Andrei Golubev <[email protected]> Reviewed-by: MÃ¥rten Nordheim <[email protected]>
Diffstat (limited to 'src/concurrent/qtconcurrentreducekernel.h')
-rw-r--r--src/concurrent/qtconcurrentreducekernel.h34
1 files changed, 11 insertions, 23 deletions
diff --git a/src/concurrent/qtconcurrentreducekernel.h b/src/concurrent/qtconcurrentreducekernel.h
index cdddfdde0d0..5ad8bded6cf 100644
--- a/src/concurrent/qtconcurrentreducekernel.h
+++ b/src/concurrent/qtconcurrentreducekernel.h
@@ -225,33 +225,21 @@ public:
template <typename Sequence, typename Base, typename Functor1, typename Functor2>
struct SequenceHolder2 : private QtPrivate::SequenceHolder<Sequence>, public Base
{
- SequenceHolder2(QThreadPool *pool, const Sequence &_sequence, Functor1 functor1,
- Functor2 functor2, ReduceOptions reduceOptions)
- : QtPrivate::SequenceHolder<Sequence>(_sequence),
- Base(pool, this->sequence.cbegin(), this->sequence.cend(), functor1, functor2,
- reduceOptions)
- { }
-
- SequenceHolder2(QThreadPool *pool, Sequence &&_sequence, Functor1 functor1, Functor2 functor2,
+ template<typename S = Sequence, typename F1 = Functor1, typename F2 = Functor2>
+ SequenceHolder2(QThreadPool *pool, S &&_sequence, F1 &&functor1, F2 &&functor2,
ReduceOptions reduceOptions)
- : QtPrivate::SequenceHolder<Sequence>(std::move(_sequence)),
- Base(pool, this->sequence.cbegin(), this->sequence.cend(), functor1, functor2,
- reduceOptions)
- { }
-
- template<typename InitialValueType>
- SequenceHolder2(QThreadPool *pool, const Sequence &_sequence, Functor1 functor1,
- Functor2 functor2, InitialValueType &&initialValue, ReduceOptions reduceOptions)
- : QtPrivate::SequenceHolder<Sequence>(_sequence),
- Base(pool, this->sequence.cbegin(), this->sequence.cend(), functor1, functor2,
- std::forward<InitialValueType>(initialValue), reduceOptions)
+ : QtPrivate::SequenceHolder<Sequence>(std::forward<S>(_sequence)),
+ Base(pool, this->sequence.cbegin(), this->sequence.cend(),
+ std::forward<F1>(functor1), std::forward<F2>(functor2), reduceOptions)
{ }
- template<typename InitialValueType>
- SequenceHolder2(QThreadPool *pool, Sequence &&_sequence, Functor1 functor1, Functor2 functor2,
+ template<typename InitialValueType, typename S = Sequence,
+ typename F1 = Functor1, typename F2 = Functor2>
+ SequenceHolder2(QThreadPool *pool, S &&_sequence, F1 &&functor1, F2 &&functor2,
InitialValueType &&initialValue, ReduceOptions reduceOptions)
- : QtPrivate::SequenceHolder<Sequence>(std::move(_sequence)),
- Base(pool, this->sequence.cbegin(), this->sequence.cend(), functor1, functor2,
+ : QtPrivate::SequenceHolder<Sequence>(std::forward<S>(_sequence)),
+ Base(pool, this->sequence.cbegin(), this->sequence.cend(),
+ std::forward<F1>(functor1), std::forward<F2>(functor2),
std::forward<InitialValueType>(initialValue), reduceOptions)
{ }