在C++中使用枚举时,我喜欢使用EnumName::Value
(而不仅仅是Value
)。在C++中,这可能是警告或错误,具体取决于编译器设置。错误的名称不允许您使用::解析枚举?
在XCode中,允许我设置的名称是而不是有没有将此作为编译器错误?
(取ErrorLevel::
远解决了错误)
在C++中使用枚举时,我喜欢使用EnumName::Value
(而不仅仅是Value
)。在C++中,这可能是警告或错误,具体取决于编译器设置。错误的名称不允许您使用::解析枚举?
在XCode中,允许我设置的名称是而不是有没有将此作为编译器错误?
(取ErrorLevel::
远解决了错误)
如果使用c++11,你的语法是正确的:
enum EnumName
{
Value
}
...
EnumName n = EnumName::Value;
另外要注意的是,如果你使用c++11 ,你可以要求使用EnumName::Value
inste通过使用enum class
代替enum
广告只是Value
:
enum class EnumName
{
Value
}
...
EnumName n = EnumName::Value; //ok
EnumName fuuu = Value; // compilation error
否则,您可以用命名空间包裹你的枚举声明中的标准C++
namespace EnumName {
enum EnumName
{
Value
}
}
...
EnumName::EnumName n = EnumName::Value;
AFAIK这只是一个错误(除非你是使用C++ 11“枚举类”)。 –
VC++将其标记为警告[C4482](http://msdn.microsoft.com/zh-cn/library/ms173704(v = vs80).aspx)。这是因为我导入了相同的代码(来自另一个xCode项目)并突然出现错误。必须有一些设置导致它出现错误。 – bobobobo
事实上,就标准而言它*是一个错误,VC++允许它是非标准扩展。 –