D-Programming-Language/phobos — pull request #737 by rtcvb32 (2012-08-04 08:51:55+00:00)
Title: Bitfields updates

issues dealt with:
4425 - More bells & whistles for bitfields
4935 - std.bitmanip: bitfields!() template with trailing unnamed field does not work
5520 - bitfieldsOn
5942 - bitfields overwritten erroneously:
6686 - bitmanip bitfields are broken at 64 bits
8474 - bitfields doesn't work with 32 bit fields

Added static check to revert a bitfield to normal type if it is the only one (and at full size). 32bit as first field no longer errors. Bitfields should be separated and the no longer overwrite the whole thing (masking fixed).

bitfields now allow const as part of it's type signature for bitfields; (the setter will be absent).

Original bitfields are now pure, safe and nothrow.

bitfieldsOn added, accepts built-in unsigned types, non-floats. Won't work with types to small for bitfields.