Я работаю с настраиваемым перечислимым типом в C ++, но у него не так много значений. Я хочу попытаться уменьшить размер, который они занимают, и слышал, что типы enum
по умолчанию всегда целые числа . Затем я наткнулся на запись MSDN о перечислениях C ++ и нашел очень интересным следующий синтаксис:
enum [: type] {enum-list};
Конечно, он компилировался с тем, что я хотел (VS2008), когда я сделал следующее:
enum plane : unsigned char { xy, xz, yz };
Теперь , вы можете видеть из моих констант перечисления, что мне не нужно много места с точки зрения пространства - тип char без знака был бы идеальным для моего использования.
Однако, я должен сказать, я никогда не видел, чтобы эта форма использовалась где-нибудь в Интернете - большинство, кажется, даже не подозревает об этом. Я пытаюсь сделать этот код кроссплатформенным (и, возможно, для использования во встроенных системах), поэтому у меня возник вопрос ... Правильный ли это синтаксис C ++ или поддерживается только компилятором MSVC?
Изменить : Похоже, что эта функция теперь является частью C ++ 11 и выше и называется перечислениями с ограниченным объемом .