编译器错误 C2930

“class”:type-class-id 被重新定义为 “enum identifier” 的枚举器

不能将泛型或模板类用作枚举的成员。

如果大括号匹配不正确,则可能导致此错误。

以下示例生成 C2930:

// C2930.cpp
// compile with: /c
template<class T>
class x{};
enum SomeEnum { x };   // C2930

class y{};
enum SomeEnum { y };

使用泛型时,也可能发生 C2930:

// C2930c.cpp
// compile with: /clr /c
generic<class T>
ref struct GC {};
enum SomeEnum { GC };   // C2930

ref struct GC2 {};
enum SomeEnum2 { GC2 };