1 enum class SignedEnum : int { min = -2, max = 1 }; 2 enum class UnsignedEnum : unsigned { min = 0, max = 3 }; 3 4 struct BitfieldStruct { 5 SignedEnum signed_min : 2; 6 SignedEnum signed_other : 2; 7 SignedEnum signed_max : 2; 8 UnsignedEnum unsigned_min : 2; 9 UnsignedEnum unsigned_other : 2; 10 UnsignedEnum unsigned_max : 2; 11 }; 12 main()13int main() { 14 BitfieldStruct bfs; 15 bfs.signed_min = SignedEnum::min; 16 bfs.signed_other = static_cast<SignedEnum>(-1); 17 bfs.signed_max = SignedEnum::max; 18 19 bfs.unsigned_min = UnsignedEnum::min; 20 bfs.unsigned_other = static_cast<UnsignedEnum>(1); 21 bfs.unsigned_max = UnsignedEnum::max; 22 23 return 0; // break here 24 } 25