dmd.common.bitfields

A library bitfields utility

Authors

Dennis Korpel

  • Declaration

    string generateBitFields(S, T)() if (__traits(isUnsigned, T));

    Generate code for bit fields inside a struct/class body

    Parameters

    S

    type of a struct with only boolean fields, which should become bit fields

    T

    type of bit fields variable, must have enough bits to store all booleans

    Return Value

    D code with a bit fields variable and getter / setter functions

    Examples

    1. static struct B { bool x; bool y; bool z = 1; } static struct S { mixin(generateBitFields!(B, ubyte)); } S s; assert(!s.x); s.x = true; assert(s.x); s.x = false; assert(!s.x); s.y = true; assert(s.y); assert(!s.x); assert(s.z);