1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// { dg-do compile { target concepts } } template <class T, class U> concept NotSame = !__is_same_as (T, U); template <class T, class X> struct A { template <NotSame<A> U> void f(U) { } template <class U> void f(U); }; int main() { A<int,int>().f<char>(0); }