Bit-fields and unions may be combined in a way that permits programmers to pack and unpack bits in an integer. Unions allow programmers to circumvent C++’s strong typing rules while bit-fields allow programmers to access the bits that encode the compressed information .