// { dg-do compile { target c++17 } } // PR libstdc++/95833 - Incorrect static_assert in std::reduce overload #include struct A { }; struct B { }; struct binop { template A operator()(T&&, U&&) const { return A{}; } }; B b; A a = std::reduce(&b, &b + 1, A{}, binop{});