"enum class" Visual C++ 2012 中是什么意思?

What does "enum class" mean in Visual C++ 2012?

本文关键字:是什么 意思 C++ enum class Visual 2012      更新时间:2023-10-16
Visual

C++ 2012 中对enum class有两个相互冲突的定义:

  • C++11,类型安全的enum版本
  • C++/CLI System::Enum派生类型,等效于具有静态 const 整数成员的ref class

启用或禁用/clr 开关时,enum class的含义是否会更改?

托管枚举必须具有访问说明符(publicprivate)。 C++11 作用域枚举不得具有访问说明符。 例如

enum class E { e0 };
public enum class F { f0 };
private enum class G { g0 };

E在 C++、C++/CLI 和 C++/CX 中有效,并且是普通的C++范围枚举。

FG仅在 C++/CLI 和 C++/CX 中有效,它们命名托管枚举(在 C++/CLI 中)或 Windows 运行时枚举(在 C++/CX 中)。