Поделиться через


Ошибка компилятора C2930

"класс": идентификатор типа класса переопределен как перечислитель "идентификатор_перечисления"

Универсальный класс или класс шаблона нельзя использовать в качестве члена перечисления.

Эта ошибка может возникнуть при неправильной расстановке скобок.

В следующем примере возникает ошибка 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 };