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

View File

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