1 // Origin PR c++/51143
2 // { dg-do compile { target c++11 } }
3 
fB04 using A0 = struct B0 { void f() {} };
5 
6 template<int N>
7 using A1 =
8     struct B1 { // { dg-error "types may not be defined in alias template" }
9         static auto constexpr value = N;
10     };
11 
12 A1<0> a1;
13 
14 template<class T>
15 using A2 =
16     struct B2 {  // { dg-error "types may not be defined in alias template" }
fB217         void f(T){}
18     };
19 
20 A2<bool> a2;
21 
22 template<class T>
23 using A3 =
24     enum B3 {b = 0;}; //{ dg-error "types may not be defined in alias template" }
25 
26 A3<int> a3; // { dg-error "'A3' does not name a type" }
27 
main()28 int main() { }
29