标识符:枚举的正向声明只能使用简单标识符
注解
C++ Standard 不允许使用限定 ID 声明不透明枚举。不透明的枚举声明指定名称和基础类型,但不列出枚举器或其值。
Example
以下示例生成 C7742:
// C7742.cpp
class MyClass
{
public:
enum MyEnum
{
e1,
e2
};
};
enum MyClass::MyEnum; // C7742
若要修复此错误,请删除不透明的枚举声明,因为它不会向程序添加任何内容。
但是,可以使用限定 ID 定义枚举。例如:
struct S
{
enum E : int;
};
enum S::E : int { e1, e2, e3 };