"枚举类"在Visual C++ 2012中的含义是什么?

Asi*_*sik 3 .net c++ enums visual-c++ c++11

enum classVisual C++ 2012中有两个相互矛盾的定义:

  • C++ 11,类型安全版 enum
  • C++/CLI System::Enum派生类型,相当于ref class带有静态const积分成员的类型.

enum class启用或禁用/ clr开关时更改的含义是什么?

Jam*_*lis 7

托管枚举必须具有访问说明符(public或者private).C++ 11范围的枚举必须没有访问说明符.例如,

enum class E { e0 };

public enum class F { f0 };
private enum class G { g0 };
Run Code Online (Sandbox Code Playgroud)

E 在C++,C++/CLI和C++/CX中有效,它是一个普通的C++范围枚举.

F并且G仅在C++/CLI和C++/CX中有效,并且它们命名为托管枚举(在C++/CLI中)或Windows运行时枚举(在C++/CX中).