1 // DR 1286: An alias template can be equivalent to an underlying template. 2 // { dg-do compile { target c++11 } } 3 4 template <class T, class U> struct same; 5 template <class T> struct same<T,T> {}; 6 7 template <class T> struct A {}; 8 template <class T> using B = A<T>; 9 10 template <template <class> class T> class C {}; 11 12 void f(C<B>) { } // { dg-final { scan-assembler "_Z1f1CI1AE" } } 13 same<C<A>, C<B> > s; 14