我正在使用C++中的自定义枚举类型,但它没有很多值。我想尝试减少它们占用的空间大小,并听说
枚举
类型 默认情况下总是整数。然后我发现了C++枚举的MSDN条目,并发现以下语法非常有趣:enum [: type] {enum-list};
当我按照以下步骤操作时,我的代码终于编译成功了(使用我想要的VS2008版本):
enum plane : unsigned char { xy, xz, yz };
现在,你可以从我的枚举常量中看到,我在空间方面并不需要太多 - 无符号 char 类型对我的用途来说完美。
然而,我必须说,我从未在互联网上看到过这种形式被使用 - 大多数人甚至似乎都不知道。我正在尝试使这个代码跨平台(可能用于嵌入式系统),所以让我想知道......这是正确的 C++ 语法,还是只受 MSVC 编译器支持?
编辑: 看起来,这个特性现在是 C++11 及以上版本的一部分,被称为 作用域枚举。
#define
宏或者只是封装在命名空间中的const
变量来实现这个... 我只是想确定我的所有选项。我认为使用这种方法的语法既方便又直观。 - Breakthrough