Compilerfehler C2930

Aktualisiert: November 2007

Fehlermeldung

'Klasse': Typ-Klassen-ID neu definiert als Enumerator von 'Enumerationsbezeichner'
'class' : type-class-id redefined as an enumerator of 'enum identifier'

Eine generische oder Vorlagenklasse kann nicht als Member einer Enumeration verwendet werden.

Dieser Fehler kann dadurch verursacht werden, dass geschweifte Klammern nicht korrekt übereinstimmen.

Im folgenden Beispiel wird C2930 generiert:

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

class y{};
enum SomeEnum { y };

C2930 kann auch auftreten, wenn Generika verwendet werden:

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

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