C++11 定义与枚举同名的枚举类

C++11 定义与枚举同名的枚举类,c++11,enum-class,C++11,Enum Class,为什么在c++11中进行编译: struct foo { enum class Resolution { None=10, Nominal=20 }; enum class Scale { None, Nominal }; }; 但这并不是: struct foo { enum Resolution { None=10, Nominal=20 }; enum Scale { None, Nominal }; }; ?在C++11之前,枚举值没有范围,这意味着两个枚举中的值不能

为什么在c++11中进行编译:

struct foo
{
  enum class Resolution { None=10, Nominal=20 };
  enum class Scale { None, Nominal };
};
但这并不是:

struct foo
{
  enum Resolution { None=10, Nominal=20 };
  enum Scale { None, Nominal };
};

在C++11之前,枚举值没有范围,这意味着两个枚举中的值不能相同。
使用
enum类

时不再是这种情况,您不需要将其放入结构中来产生这种歧义。