Created on 2017-12-15.00:00:00 last changed 45 months ago
Proposed resolution:
This wording is relative to N4713.
Modify [transform.reduce] as indicated:
template<class InputIterator1, class InputIterator2, class T> T transform_reduce(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, T init);-?- Effects: Equivalent to:
return transform_reduce(first1, last1, first2, init, plus<>(), multiplies<>());template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2, class T> T transform_reduce(ExecutionPolicy&& exec, ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, T init);-1- Effects: Equivalent to:
return transform_reduce(std::forward<ExecutionPolicy>(exec), first1, last1, first2, init, plus<>(), multiplies<>());
[ 2018-3-17 Adopted in Jacksonville ]
[ 2018-01-15 Moved to Tentatively Ready after 5 positive votes on c++std-lib. ]
Since there exists only one common Effects element for both the parallel and the non-parallel form of transform_reduce without explicit operation parameters, the current specification of a function call std::transform_reduce(exec, first1, last1, first2, init) has the same effect as if the ExecutionPolicy would have been ignored. Presumably this effect is unintended.
History | |||
---|---|---|---|
Date | User | Action | Args |
2021-02-25 10:48:01 | admin | set | status: wp -> c++20 |
2018-03-18 16:03:30 | admin | set | messages: + msg9754 |
2018-03-18 16:03:30 | admin | set | status: voting -> wp |
2018-02-12 01:13:49 | admin | set | status: ready -> voting |
2018-01-20 14:17:37 | admin | set | messages: + msg9609 |
2018-01-20 14:17:37 | admin | set | status: new -> ready |
2017-12-16 11:20:15 | admin | set | messages: + msg9596 |
2017-12-15 00:00:00 | admin | create |