enum class
在 Visual C++ 2012 中有两个相互冲突的定义:
enum
的 C++11 类型安全版本- C++/CLI,
System::Enum
派生类型,等同于具有 static const 整数成员的ref class
。
当您启用或禁用/clr 开关时,enum class
的含义是否改变?
最佳答案
托管枚举必须有一个访问说明符(public
或 private
)。 C++11 作用域枚举不能有访问说明符。例如,
enum class E { e0 };
public enum class F { f0 };
private enum class G { g0 };
E
在 C++、C++/CLI 和 C++/CX 中有效,它是一个普通的 C++ 作用域枚举。
F
和 G
仅在 C++/CLI 和 C++/CX 中有效,它们命名托管枚举(在 C++/CLI 中)或 Windows 运行时枚举 (在 C++/CX 中)。
关于c++ - "enum class"在 Visual C++ 2012 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700105/