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

时间:2012-10-02 23:56:42

标签: c++ .net visual-c++ enums c++11

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

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

启用或禁用/ clr开关时,enum class的含义是否会发生变化?

1 个答案:

答案 0 :(得分:7)

托管枚举必须具有访问说明符(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中)。