#pragma once namespace RBX { template class CompactEnum { public: CompactEnum() { } CompactEnum(Enum value): data(value) { } operator Enum() const { return static_cast(data); } private: Storage data; }; }