我有一个C ++代码库,可以在两个平台上编译,其中一个是Visual C ++ 2013。 第二个平台支持C ++ 03(而不是C ++ 11)。第二个平台编译器中的枚举大小实现是使用所需的最小大小。 VC ++实现使用4个字节,即使它们不需要。
我想让VC ++将枚举编译为最小尺寸,而无需修改代码。例如,另一个编译器不编译它:
enum MyEnum : unsigned char {};
我搜索过,但找不到支持这个的编译器标志。 它们存在吗?
答案 0 :(得分:2)
C ++ 03必须理解枚举常量的显式类型:
enum Enumeration
#if __cplusplus >= 201103L
: unsigned char
#endif
{
ONE = unsigned char(1), // storage type for enum is unsigned char
...
}