编译器错误 C7742

标识符:枚举的正向声明只能使用简单标识符

注解

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 };