1 // { dg-do compile { target c++11 } } 2 // { dg-options "" } 3 4 template<typename T> struct S1 5 { 6 enum E1 : int; 7 enum class E2 : T; 8 }; 9 10 template<typename T> enum S1<T>::E1 : int { e1 }; 11 template<typename T> enum class S1<T>::E2 : T { e2 }; 12 13 template<> enum S1<int>::E1 : int { i1 }; 14 template<> enum class S1<int>::E2 : int { i2 }; 15 16 S1<char>::E1 xci = S1<char>::e1; 17 S1<int>::E1 xi1 = S1<int>::i1; 18 19 S1<char>::E2 xc2 = S1<char>::E2::e2; 20 S1<int>::E2 xi2 = S1<int>::E2::i2; 21 22