Hi
I've narowed down the source of the error. All in qtconcurrentmap.h
There's this around line 714
template <template <typename> class Sequence, typename T, typename U,
typename V>
Sequence<U> blockingMapped(const Sequence<T> &sequence, U (map)(V))
{
typedef Sequence<U> OutputSequence;
return blockingMappedReduced(sequence, map, &OutputSequence::append,
QtConcurrent::OrderedReduce);
}
The call to blockingMappedReduced causes an ambiguity with the versions
around line 440:
template <typename Sequence, typename MapFunctor, typename T, typename
C, typename U>
C blockingMappedReduced(const Sequence &sequence,
MapFunctor map,
T (C::*reduce)(U),
QtConcurrent::ReduceOptions options =
QtConcurrent::ReduceOptions(QtConcurrent::UnorderedReduce |
QtConcurrent::SequentialReduce))
{
and 510
template <typename Sequence, typename T, typename U, typename V,
typename C, typename W>
C blockingMappedReduced(const Sequence &sequence,
T (map)(U),
V (C::*reduce)(W),
QtConcurrent::ReduceOptions options =
QtConcurrent::ReduceOptions(QtConcurrent::UnorderedReduce |
QtConcurrent::SequentialReduce))
{
The only difference between these two function signatures is that the
first has a
MapFunctor map,
argument and the second has
T (map)(U),
It looks to me as though this is ambiguous. I'll try to reduce this to a
small standalone example.
A+
Paul
--
Paul Floyd http://paulf.free.fr