3

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

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

enum class当您启用或禁用 /clr 开关时,含义会改变吗?

4

1 回答 1

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++ 作用域枚举。

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

于 2012-10-03T00:07:00.620 回答