libstdc++: Replace incorrect static assertion in std::reduce [PR95833]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 18 Jun 2021 13:46:58 +0000 (14:46 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 18 Jun 2021 13:46:58 +0000 (14:46 +0100)
commit0532452dcd17910dfd3d2b0df50dfe3ef1194bf7
tree1e83ebd675e81f64de4d88fe60115ca2fb9a0697
parentf58d03b5df25f9eab06b7eacea8da780fc2e0219
libstdc++: Replace incorrect static assertion in std::reduce [PR95833]

The standard does not require the iterator's value type to be
convertible to the result type, it only requires that the result of
dereferencing the iterator can be passed to the binary function.

libstdc++-v3/ChangeLog:

PR libstdc++/95833
* include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
incorrect static_assert with ones matching the 'Mandates'
conditions in the standard.
* testsuite/26_numerics/reduce/95833.cc: New test.
libstdc++-v3/include/std/numeric
libstdc++-v3/testsuite/26_numerics/reduce/95833.cc [new file with mode: 0644]