Since most C++ compilers impose a minimal size for a class, there may be some bytes left, which can be used by derived classes or are wasted otherwise. Sometimes, a derived class just needs one bit of information, which if stored individually in the space of the derived object, would require another word of minimal alignment width. In order to save memory space, the derived classes are invited to use the `register' for the storage of their flags. sreg(), creg() and greg() give arbitrary access to the flags. To prevent conflicts along a derivation chain, the usage of the register must be documented in a register allocation table.