Eclipse 中的枚举声明
Posted
技术标签:
【中文标题】Eclipse 中的枚举声明【英文标题】:Enum declaration in Eclipse 【发布时间】:2010-11-21 09:30:52 【问题描述】:我正在 Eclipse、Linux 中编译一个 c++ 项目。
该项目过去是在 Windows 中编译的。
我有这样的枚举声明:
enum nameofenum:UINT32
one=0,
two=1
结果是eclipse出错了。
:UINT32
是什么意思?
如何将此声明切换到 Linux?
谢谢!!
【问题讨论】:
请通过选择代码并按 CTRL+K 来格式化您的代码。使用预览! 【参考方案1】:这看起来像 strongly typed enum,这是 C++0x 的一个特性。基本上,它指定了枚举的底层类型,所以one
和two
将是UINT32
s。
要编译它,您需要一个支持 C++0x 语言特定部分的编译器。我相信GCC 4.4 和Visual C++ 在一定程度上支持强类型枚举。
【讨论】:
【参考方案2】:: UINT32
声明了枚举的底层类型;这意味着枚举将由UINT32
表示。
这是 C++0x 中添加的新 C++ 功能,称为强类型枚举。 Visual C++ 至少从 Visual C++ 2005 开始就支持它;您使用的 g++ 版本可能不支持。
至于如何使用 g++ 来实现这一点,这取决于。如果您没有任何依赖于特定基础类型的代码,那么您可以将其删除。如果您确实有依赖于特定基础类型的代码,您可以考虑将枚举类型的使用替换为基础类型(即,使用UINT32
而不是nameofenum
);不过,这不是很好。
【讨论】:
【参考方案3】:-
UINT32 是无符号的 32 位整数,因此您的枚举由 4bytes int 表示。
视情况而定。我不确切知道,但是您真的需要将此枚举用作 32 位 int 吗?也许你可以避免这个 :UINT32 声明?
【讨论】:
【参考方案4】:: UINT
表示枚举标识符的底层类型是UINT
。
它是描述为here 的Microsoft 扩展。要使其编译删除: UINT
。
【讨论】:
以上是关于Eclipse 中的枚举声明的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse Inidigo 中的注释声明托管 bean 和代码完成 [重复]