1 // { dg-do compile { target c++11 } } 2 3 // opaque enum declarations 4 enum class E1; 5 enum class E2 : int; 6 enum class E3 : short; 7 enum E4 : int; 8 enum E5 : short; 9 10 // can be repeated 11 enum class E1; 12 enum class E2 : int; 13 enum class E3 : short; 14 enum E4 : int; 15 enum E5 : short; 16 17 // are complete so we can declare variables 18 E1 b1; 19 E2 b2; 20 E3 b3; 21 E4 b4; 22 E5 b5; 23 24 //even with elaborated-type-specifiers 25 enum E1 a1; 26 enum E2 a2; 27 enum E3 a3; 28 enum E4 a4; 29 enum E5 a5; 30 31 // and the list can be added later 32 enum class E1 { e11, e12 }; 33 enum class E2 : int { e21, e22 }; 34 enum class E3 : short {e31, e32 }; 35 enum E4 : int { e41, e42 }; 36 enum E5 : short { e51, e52 }; 37 38 // more repetitions allowed 39 enum class E1; 40 enum class E2 : int; 41 enum class E3 : short; 42 enum E4 : int; 43 enum E5 : short; 44 45