我正在移植用MS Visual Studio编写的代码。对于枚举,MS Visual Studio允许用户指定如下类型:
enum SystemStatus: BYTE {Ok = 0, NeedsAttention, Failed};
where BYTE为unsigned char
参考http://msdn.microsoft.com/en-us/library/2dzy4k6e.aspx当我尝试使用RedHat 5.6附带的g++ 4.1.2版本编译代码时,这会导致错误。显然,新的c++标准c++ 0x支持强类型枚举:http://en.wikipedia.org/wiki/C%2B%2B0x#Strongly_typed_enumerations
是否有一个简单的方法来解决这个问题并获得代码移植?如果可能的话,我们希望代码在Windows和Linux中都可以编译。这个项目中枚举的数量是巨大的!!谢谢。
您使用的g++版本不支持c++11特性,例如扩展枚举。只要从源代码编译最新的g++,有一个帮助脚本可以下载gcc依赖项并为您构建它。