| // { dg-do compile { target c++11 } } | |
| // Exercise some member alias templates ... | |
| template<class T, class U> class A0 {}; | |
| template<class T> | |
| struct A1 { | |
| template<class U> struct S {}; | |
| template<class U> using AA0 = A0<T, U>; | |
| void f(A0<T, int>); | |
| void | |
| foo() | |
| { | |
| AA0<int> a; | |
| const AA0<int> b; | |
| f(a); | |
| f(b); | |
| } | |
| }; | |
| void | |
| bar() | |
| { | |
| A1<int> a1; | |
| a1.foo(); | |
| A1<int>::AA0<int> a1aa0; | |
| a1.f(a1aa0); | |
| } | |
| // ... some simple member alias ... | |
| struct B { | |
| using A = int; | |
| }; | |
| B::A a; | |
| // ... and some simple alias | |
| using Int = int; |