111
|
1 // { dg-do compile }
|
|
2
|
|
3 struct B { };
|
|
4 union U { };
|
|
5
|
|
6 template<typename T>
|
|
7 struct underlying_type
|
|
8 { typedef __underlying_type(T) type; }; // { dg-error "not an enumeration" }
|
|
9
|
|
10 __underlying_type(int) i1; // { dg-error "not an enumeration|invalid" }
|
|
11 __underlying_type(A) i2; // { dg-error "expected|type" }
|
|
12 __underlying_type(B) i3; // { dg-error "not an enumeration|invalid" }
|
|
13 __underlying_type(U) i4; // { dg-error "not an enumeration|invalid" }
|
|
14
|
|
15 underlying_type<int>::type i5;
|
|
16 underlying_type<A>::type i6; // { dg-error "not declared|template|expected" }
|
|
17 underlying_type<B>::type i7;
|
|
18 underlying_type<U>::type i8;
|