将c++代码从MS Visual Studio移植到Linux,并处理类型化枚举

Porting C++ code from MS Visual Studio to Linux and dealing with typed enums

本文关键字:Linux 处理 枚举 类型化 代码 c++ MS Studio Visual      更新时间:2023-10-16

我正在移植用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依赖项并为您构建它。