[Bug c++/105615] Partial ordering of constraints with empty parameter mapping
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105615 Andrew Pinski changed: What|Removed |Added Resolution|INVALID |DUPLICATE --- Comment #3 from Andrew Pinski --- *** This bug has been marked as a duplicate of bug 96821 ***
[Bug c++/105615] Partial ordering of constraints with empty parameter mapping
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105615 --- Comment #2 from Pilar Latiesa --- (In reply to Patrick Palka from comment #1) > Constraint subsumption is specified in terms of the normal form. When the > concept C is made independent of the template parameter, the normal forms of > C and C are the same, so the constraint (C && C) no longer > strictly subsumes C, hence the second overload is no longer considered > more specialized than the first. So I believe GCC (and Clang and MSVC) are > correct to diagnose the call as ambiguous. I see. Thanks for the explanation Patrick. By the way, neither Clang nor MSVC handle the dependent case correctly.
[Bug c++/105615] Partial ordering of constraints with empty parameter mapping
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105615 Patrick Palka changed: What|Removed |Added Resolution|--- |INVALID CC||ppalka at gcc dot gnu.org Status|UNCONFIRMED |RESOLVED --- Comment #1 from Patrick Palka --- Constraint subsumption is specified in terms of the normal form. When the concept C is made independent of the template parameter, the normal forms of C and C are the same, so the constraint (C && C) no longer strictly subsumes C, hence the second overload is no longer considered more specialized than the first. So I believe GCC (and Clang and MSVC) are correct to diagnose the call as ambiguous.