Enable some-of the QtConcurrent test cases

QtConcurrent::filtered test-cases for move-only containers were failing
to compile, because it is assumed that the passed container should have
value_type defined.

Change-Id: I3e9e5ebc07704cb98a15b125ae8bd5b5a84d497a
Reviewed-by: Andreas Buhr <andreas.buhr@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
This commit is contained in:
Sona Kurazyan 2020-10-08 12:12:07 +02:00
parent 3d040267f4
commit 4a981b9bdb
2 changed files with 9 additions and 8 deletions

View File

@ -231,19 +231,18 @@ void tst_QtConcurrentFilter::filtered()
QCOMPARE(result, std::vector<int>({ 2, 4 })); QCOMPARE(result, std::vector<int>({ 2, 4 }));
} }
#if 0
// does not work yet
{ {
// move only types sequences // move only types sequences
auto future = QtConcurrent::filtered( auto future = QtConcurrent::filtered(MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers);
MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers);
QCOMPARE(future.results(), QList<int>({ 2, 4 })); QCOMPARE(future.results(), QList<int>({ 2, 4 }));
#if 0
// does not work yet
auto result = QtConcurrent::blockingFiltered( auto result = QtConcurrent::blockingFiltered(
MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers); MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers);
QCOMPARE(result, std::vector<int>({ 2, 4 })); QCOMPARE(result, std::vector<int>({ 2, 4 }));
}
#endif #endif
}
} }
template <typename SourceObject, template <typename SourceObject,
@ -308,20 +307,20 @@ void tst_QtConcurrentFilter::filteredThreadPool()
QCOMPARE(result, std::vector<int>({ 2, 4 })); QCOMPARE(result, std::vector<int>({ 2, 4 }));
} }
#if 0
// does not work yet
{ {
// move-only sequences // move-only sequences
auto future = QtConcurrent::filtered( auto future = QtConcurrent::filtered(
&pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers); &pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers);
QCOMPARE(future.results(), QList<int>({ 2, 4 })); QCOMPARE(future.results(), QList<int>({ 2, 4 }));
#if 0
// does not work yet
auto result = auto result =
QtConcurrent::blockingFiltered( QtConcurrent::blockingFiltered(
&pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers); &pool, MoveOnlyVector({ 1, 2, 3, 4 }), keepEvenIntegers);
QCOMPARE(result, std::vector<int>({ 2, 4 })); QCOMPARE(result, std::vector<int>({ 2, 4 }));
}
#endif #endif
}
} }
template <typename SourceObject, template <typename SourceObject,

View File

@ -138,6 +138,8 @@ public:
class MoveOnlyVector class MoveOnlyVector
{ {
public: public:
using value_type = int;
// rule of six // rule of six
MoveOnlyVector() = default; MoveOnlyVector() = default;
~MoveOnlyVector() = default; ~MoveOnlyVector() = default;