Compartilhar via


Erro do compilador C2990

'class' : o tipo sem classe já foi declarado como um tipo de classe

A classe não genérica ou de modelo redefine uma classe genérica ou de modelo. Verifique os arquivos de cabeçalho em busca de conflitos.

A amostra a seguir gera o erro C2990:

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

O erro 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

O erro C2990 também pode ocorrer devido a uma alteração interruptiva no compilador do Microsoft C++ para Visual Studio 2005; agora o compilador requer que várias declarações para o mesmo tipo sejam idênticas em relação à especificação do modelo.

A amostra a seguir gera o erro 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;
};