From C ++ 03 9.6 “Bit-fields”:
The bit field must be an integral or enumerated type (3.9.1). this is an implementation - it is determined whether a simple (neither explicit signature nor unsigned) char, short, int or long bit field is signed or unsigned. The bool value can be successfully stored in a bit field of any nonzero size ....
If true or false is stored in a bool type bit field of any size (including a single-bit bit field), the original bool value and the bit field value are compared equal to ....
3.9.1 / 7 "Basic types" indicates that bool is an integral type.
source share