https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119714
--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-15 branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:0b76b58a5875d519f95a5af661fb64e42a42ed8e commit r15-9660-g0b76b58a5875d519f95a5af661fb64e42a42ed8e Author: Patrick Palka <ppa...@redhat.com> Date: Mon May 12 09:15:34 2025 -0400 libstdc++: Fix constraint recursion in std::expected's operator== [PR119714] This std::expected friend operator== is prone to constraint recursion after CWG 2369 for the same reason as basic_const_iterator's comparison operators were before the r15-7757-g4342c50ca84ae5 workaround. This patch works around the constraint recursion here in a similar manner, by making the function parameter of type std::expected dependent in a trivial way. PR libstdc++/119714 PR libstdc++/112490 libstdc++-v3/ChangeLog: * include/std/expected (expected::operator==): Replace non-dependent std::expected function parameter with a dependent one of type expected<_Vp, _Er> where _Vp matches _Tp. * testsuite/20_util/expected/119714.cc: New test. Reviewed-by: Tomasz KamiÅski <tkami...@redhat.com> Reviewed-by: Jonathan Wakely <jwak...@redhat.com> (cherry picked from commit 91bc8169edd9038d78f38bd813287d72e6345c26)