]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Improve optional's <=> constraint recursion workaround [PR104606]
authorPatrick Palka <ppalka@redhat.com>
Fri, 28 Feb 2025 15:15:45 +0000 (10:15 -0500)
committerPatrick Palka <ppalka@redhat.com>
Fri, 28 Feb 2025 15:15:45 +0000 (10:15 -0500)
commit815f1f27a1dba2f0acd1f02d0beafedadebe967c
tree9323b0d3d5f5022fcbcfbc71619ad14ab4ce936c
parent4342c50ca84ae5448c0128c52120f4fe9005f203
libstdc++: Improve optional's <=> constraint recursion workaround [PR104606]

It turns out the reason the behavior of this testcase changed after CWG
2369 is because validity of the substituted return type is now checked
later, after constraints.  So a more reliable workaround for this issue
is to add a constraint to check the validity of the return type earlier,
matching the pre-CWG 2369 semantics.

PR libstdc++/104606

libstdc++-v3/ChangeLog:

* include/std/optional (operator<=>): Revert r14-9771 change.
Add constraint checking the validity of the return type
compare_three_way_result_t before the three_way_comparable_with
constraint.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/include/std/optional