在C++中使用枚举时,我喜欢使用EnumName::Value(而不是Value)。在C++中,根据编译器设置,这是警告还是错误。

在XCode中,该设置的名称是什么,它使我不会出现编译器错误?

(取消ErrorLevel::可解决该错误)

最佳答案

  • 如果使用c++11,则语法正确:
    enum EnumName
    {
    Value
    }
    ...
    EnumName n = EnumName::Value;
    

    还要注意,如果使用c++11,则可以通过使用EnumName::Value而不是Value来要求使用enum class而不是enum:
    enum class EnumName
    {
    Value
    }
    ...
    EnumName n = EnumName::Value; //ok
    EnumName fuuu = Value; // compilation error
    
  • 否则,您可以使用 namespace 包装枚举声明
    namespace EnumName {
    enum EnumName
    {
    Value
    }
    }
    ...
    EnumName::EnumName n = EnumName::Value;
    
  • 10-06 13:38