代码之家  ›  专栏  ›  技术社区  ›  TreDubZedd

如何确保VisualC++不允许范围内枚举访问?

  •  0
  • TreDubZedd  · 技术社区  · 6 年前

    ClassName::EnumName::EnumValue 与适当的 ClassName::EnumValue ). visualstudio似乎可以使用这种用法(即使枚举没有定义为 enum class

    在这种情况下,如何使visualstudio给出类似于GCC的错误?

    编辑:我应该注意到,我们需要的GCC版本往往非常旧(在6.1之前)

    1 回复  |  直到 6 年前
        1
  •  1
  •   NathanOliver    6 年前

    您将无法使MSV导致编译器错误。随着作用域枚举的引入,使用枚举名称引用非作用域枚举变得合法。这意味着 ClassName::EnumName::EnumValue ClassName::EnumValue

    /std:[c++14|c++17|c++latest] 因为它是C++标准编译,所以它总是合法的。 类名::枚举名::枚举值