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