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

--- Comment #11 from Andrew Sutton <andrew.n.sutton at gmail dot com> ---
Most of the concerns in this issue have been resolved when concept satisfaction
was defined in terms of normalized constraints in all contexts (requirements or
otherwise). In particular. negation makes the constraint atomic, and we don't
recursively normalize atoms. Negation is not a logical operator for the purpose
of subsumption.

Note that the case of overloading with the constraints !(C<A> && C<B>) vs
(!C<A> || !C<B>) is ambiguous since the atomic constraint !(C<A> && C<B>)
doesn't match either  !C<A> and !C<B> (and vice versa).

The concepts-cxx2a branch implements the new semantics.

Reply via email to