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<>());