Partilhar via


Compilador erro C2990

Mensagem de erro

'classe': tipo de classe não sistema autônomo já foi declarada sistema autônomo um tipo de classe

A não genérica ou classe de modelo redefine uma classe genérica ou modelo.Verificar arquivos de cabeçalho de conflitos.

O exemplo a seguir gera C2990:

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

C2990 também pode ocorrer ao usar genéricos:

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

ref struct GC {};   // C2990

C2990 também pode ocorrer devido a uma alterar significativa no compilador do Visual C++ para Visual C++ 2005; o compilador agora exige que várias declarações para o mesmo tipo sejam idêntico com relação à especificação de modelo. Para obter mais informações, consulte Quebrar alterações no compilador de 2005 Visual C++.

O exemplo a seguir gera 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;
};