移植 C++从 MS Visual Studio 到 Linux 的代码并处理类型化枚举

发布于 2024-11-29 10:38:41 字数 656 浏览 1 评论 0原文

我正在移植用 MS Visual Studio 编写的代码。对于枚举,MS Visual Studio 允许用户指定如下类型:

enum SystemStatus : BYTE { Ok = 0, NeedsAttention, Failed };

其中 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 中编译。这个项目中的枚举数量非常巨大!谢谢。

I am porting code that was written with MS Visual Studio. For enums MS Visual Studio allows a user to specify a type like this:

enum SystemStatus : BYTE { Ok = 0, NeedsAttention, Failed };

where BYTE is unsigned char

Reference http://msdn.microsoft.com/en-us/library/2dzy4k6e.aspx

This causes errors when I try and compile the code with g++ version 4.1.2 that comes with RedHat 5.6. Apparently the new C++ standard C++0x supports strongly typed enumerations: http://en.wikipedia.org/wiki/C%2B%2B0x#Strongly_typed_enumerations

Is there an easy way to solve this problem and get the code ported? If possible we would like the code to compile in both Windows and Linux. The number of enums in this project is huge!! Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不即不离 2024-12-06 10:38:41

您使用的 g++ 版本不支持 c++11 功能,例如扩展枚举。只需从源代码编译最新的 g++,就有一个 帮助程序脚本 下载 gcc 依赖项并为您构建它。

The version of g++ you are using doesn't support c++11 features, such as extended enums. Just compile latest g++ from source, there is a helper script that downloads gcc dependencies and builds it for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文