1 // { dg-do compile } 2 // { dg-options "-std=c++0x" } 3 4 template<typename T> struct S1 5 { 6 enum E1 : int; 7 enum E1 : T; 8 enum class E2 : int; 9 enum class E2 : T; 10 }; 11 12 template<typename T> enum S1<T>::E1 : int { e1 }; 13 template<typename T> enum class S1<T>::E2 : T { e2 }; 14 15 S1<int>::E1 x1 = S1<int>::e1; 16 S1<int>::E1 x11 = S1<int>::E1::e1; 17 S1<int>::E2 x2 = S1<int>::E2::e2; 18 19 enum S1<int>::E1 ex1 = S1<int>::e1; 20 enum S1<int>::E1 ex11 = S1<int>::E1::e1; 21 enum S1<int>::E2 ex2 = S1<int>::E2::e2; 22