1 // { dg-do compile { target c++11 } } 2 3 // Exercise some member alias templates ... 4 5 template<class T, class U> class A0 {}; 6 7 template<class T> 8 struct A1 { 9 template<class U> struct S {}; 10 template<class U> using AA0 = A0<T, U>; 11 12 void f(A0<T, int>); 13 14 void fooA115 foo() 16 { 17 AA0<int> a; 18 const AA0<int> b; 19 f(a); 20 f(b); 21 } 22 }; 23 24 void bar()25bar() 26 { 27 A1<int> a1; 28 a1.foo(); 29 A1<int>::AA0<int> a1aa0; 30 a1.f(a1aa0); 31 } 32 33 // ... some simple member alias ... 34 struct B { 35 using A = int; 36 }; 37 38 B::A a; 39 40 // ... and some simple alias 41 42 using Int = int; 43