Kompilatorfel C2990

klass: icke-klasstyp som redan har deklarerats som en klasstyp

Anmärkningar

Den icke-generiska klassen eller mallklassen omdefinierar en generisk klass eller mallklass. Kontrollera om det finns konflikter i headerfilerna.

Examples

I följande exempel genereras C2990:

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

C2990 kan också inträffa när du använder generiska läkemedel:

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

ref struct GC {};   // C2990

C2990 kan också inträffa på grund av en brytande förändring i Microsoft C++-kompilatorn för Visual Studio 2005; det innebär att kompilatorn nu kräver att flera deklarationer för samma typ är identiska med avseende på mallspecifikationen.

I följande exempel genereras C2990:

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