https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105615

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
                 CC|                            |ppalka at gcc dot gnu.org
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
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<T> and C<U> are the same, so the constraint (C<T> && C<U>) no longer strictly
subsumes C<T>, 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.

Reply via email to