https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112490
--- Comment #18 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <[email protected]>: https://gcc.gnu.org/g:91bc8169edd9038d78f38bd813287d72e6345c26 commit r16-559-g91bc8169edd9038d78f38bd813287d72e6345c26 Author: Patrick Palka <[email protected]> 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 <[email protected]> Reviewed-by: Jonathan Wakely <[email protected]>
