Compartilhar via


Erro do compilador C2920

redefinição: 'class': modelo de classe ou genérico já foi declarado como 'type'

Uma classe genérica ou de modelo tem várias declarações, que não são equivalentes. Para corrigir esse erro, use nomes diferentes para tipos diferentes ou remova a redefinição do nome do tipo.

O seguinte exemplo gera o erro C2920 e mostra como corrigi-lo:

// C2920.cpp
// compile with: /c
typedef int TC1;
template <class T>
struct TC1 {};   // C2920
struct TC2 {};   // OK - fix by using a different name

O erro C2920 também pode ocorrer ao usar genéricos:

// C2920b.cpp
// compile with: /clr /c
typedef int GC1;
generic <class T>
ref struct GC1 {};   // C2920
ref struct GC2 {};   // OK - fix by using a different name