Eclipse中的枚举声明

时间:2010-11-21 09:30:52

标签: c++ linux eclipse enums

我正在Eclipse,Linux中编译一个c ++项目。

该项目过去是在Windows中编译的。

我有这样的枚举声明:

enum nameofenum:UINT32
{
  one=0,
  two=1
}

结果是eclipse出错。

  1. :UINT32是什么意思?
  2. 如何将此声明切换到Linux?
  3. 谢谢!

4 个答案:

答案 0 :(得分:4)

看起来像strongly typed enum,这是一个C ++ 0x功能。基本上,它指定了枚举的基础类型,因此onetwo将是UINT32 s。

要编译它,您需要一个支持C ++ 0x语言的这个特定部分的编译器。我相信GCC 4.4Visual C++在某种程度上支持强类型枚举。

答案 1 :(得分:2)

: UINT32声明枚举的基础类型;这意味着枚举将由UINT32表示。

这是一个新的C ++特性,它被添加到C ++ 0x中,称为强类型枚举。 Visual C ++至少从Visual C ++ 2005开始就支持它;你正在使用的g ++版本可能不支持它。

至于你如何使用g ++,这取决于。如果您没有任何依赖于特定基础类型的代码,那么您可以将其删除。如果您确实拥有依赖于特定基础类型的代码,则可以考虑将枚举类型的使用替换为基础类型(即,使用UINT32而不是nameofenum);但这并不是很好。

答案 2 :(得分:0)

  1. UINT32是无符号的32位整数,因此你的枚举用4bytes int表示。
  2. 这取决于。我不确切地知道,但你真的需要将这个枚举用作32位int吗?可能你可以避免这个:UINT32声明?

答案 3 :(得分:0)

: UINT表示枚举标识符的基础类型为UINT。 它是Microsoft扩展描述的here。要使其编译,请删除: UINT