Error del compilador C2990
'clase': tipo de no clase ya se ha declarado como tipo de clase
Una clase no genérica o de plantilla redefine una clase genérica o de plantilla. Compruebe si hay conflictos en los archivos de encabezado.
El ejemplo siguiente genera el error C2990:
// C2990.cpp
// compile with: /c
template <class T>
class C{};
class C{}; // C2990
El error C2990 se puede producir también cuando se usan genéricos:
// C2990b.cpp
// compile with: /clr /c
generic <class T>
ref struct GC;
ref struct GC {}; // C2990
El error C2990 se puede producir también por un cambio importante en el compilador de Microsoft C++ para Visual Studio 2005. El compilador ahora requiere que varias declaraciones para el mismo tipo sean idénticas con respecto a la especificación de plantilla.
El ejemplo siguiente genera el error 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;
};