Visual C ++ 2012中enum class
有两个相互矛盾的定义:
enum
System::Enum
派生类型,相当于具有静态const积分成员的ref class
。启用或禁用/ clr开关时,enum class
的含义是否会发生变化?
答案 0 :(得分:7)
托管枚举必须具有访问说明符(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中)。