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

--- Comment #2 from Pilar Latiesa <pilarlatiesa at gmail dot com> ---
(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<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.

I see. Thanks for the explanation Patrick.

By the way, neither Clang nor MSVC handle the dependent case correctly.

Reply via email to