The bit-field
attribute is not part of the type of the class member.
The
constant-expression shall be an integral constant expression
with a value greater than or equal to zero.
The
value of the integral constant expression may
be larger than the number of bits in the object
representation ([basic.types]) of the bit-field's type; in such
cases the extra bits are padding bits ([basic.types]).
Allocation of bit-fields within a class object is
implementation-defined.
Alignment of bit-fields is implementation-defined.
Bit-fields are packed into some addressable allocation unit.
If the initializer for a reference of type constT& is
an lvalue that refers to a bit-field, the reference is bound to a
temporary initialized to hold the value of the bit-field; the reference
is not bound to the bit-field directly.
If the value true or false is stored into a bit-field of
type bool of any size (including a one bit bit-field), the
original bool value and the value of the bit-field shall compare
equal.
If the value of an enumerator is stored into a bit-field of the
same enumeration type and the number of bits in the bit-field is large
enough to hold all the values of that enumeration type ([dcl.enum]),
the original enumerator value and the value of the bit-field shall
compare equal.