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

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

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

  • enum 的 C++11 类型安全版本
  • C++/CLI,System::Enum 派生类型,等同于具有 static 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 中)。

关于c++ - "enum class"在 Visual C++ 2012 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12700105/

相关文章:

c++ - 相同的 C++ 代码有时有效,有时无效

c++ - 同时访问列表中的元素及其后继元素

.net - DataList 中的 LinkBut​​ton

C++ 结构动态内存分配

c++ - 如何将 map 作为不可变 map 传递?

c++ - 指针对象的内存分配

c++ - 如何找到 ROI 并检测内部标记?

c++ - 使用 boost hana 检查特定的嵌套类型/标签

.net - System.Net.ServicePointManager.DefaultConnectionLimit 和 .MaxServicePointIdleTime

c# - 将页面呈现为图片