Teilen über


Compilerfehler C2990

'Klasse' : Nicht-Klassentyp wie bereits als Klassentyp deklariert

Bemerkungen

Die nicht generische Oder Vorlagenklasse definiert eine generische oder Vorlagenklasse neu. Überprüfen Sie Kopfzeilendateien auf Konflikte.

Examples

Im folgenden Beispiel wird C2990 generiert:

// C2990.cpp
// compile with: /c
template <class T>
class C{};
class C{};   // C2990

C2990 kann auch bei Verwendung von Generika auftreten:

// C2990b.cpp
// compile with: /clr /c
generic <class T>
ref struct GC;

ref struct GC {};   // C2990

C2990 kann auch aufgrund einer unterbrechungsbedingten Änderung des Microsoft C++-Compilers für Visual Studio 2005 auftreten; Der Compiler erfordert jetzt, dass mehrere Deklarationen für denselben Typ in Bezug auf die Vorlagenspezifikation identisch sind.

Im folgenden Beispiel wird C2990 generiert:

// C2990c.cpp
// compile with: /c
template<class T>
class A;

template<class T>
struct A2 {
   friend class A;   // C2990
};

// OK
template<class T>
struct B {
   template<class T>
   friend class A;
};