Errore del compilatore C2990
'class': tipo non di classe già dichiarato come tipo di classe
La classe non generica o modello ridefinisce una classe generica o modello. Controllare la presenza di conflitti nei file di intestazione.
L'esempio seguente genera l'errore C2990:
// C2990.cpp
// compile with: /c
template <class T>
class C{};
class C{}; // C2990
C2990 può verificarsi anche quando si usano generics:
// C2990b.cpp
// compile with: /clr /c
generic <class T>
ref struct GC;
ref struct GC {}; // C2990
C2990 può verificarsi anche a causa di una modifica di rilievo nel compilatore Microsoft C++ per Visual Studio 2005; Il compilatore richiede ora che più dichiarazioni per lo stesso tipo siano identiche rispetto alla specifica del modello.
L'esempio seguente genera l'errore 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;
};