[Bug c++/105615] Partial ordering of constraints with empty parameter mapping

2025-01-10 Thread pinskia at gcc dot gnu.org via Gcc-bugs
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

2022-05-16 Thread pilarlatiesa at gmail dot com via Gcc-bugs
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

2022-05-16 Thread ppalka at gcc dot gnu.org via Gcc-bugs
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.