Erreur du compilateur C2990
'class' : type non classe comme déjà déclaré en tant que type de classe
La classe non générique ou modèle redéfinit une classe générique ou modèle. Vérifiez les fichiers d’en-tête pour les conflits.
L’exemple suivant génère l’erreur C2990 :
// C2990.cpp
// compile with: /c
template <class T>
class C{};
class C{}; // C2990
C2990 peut également se produire lors de l’utilisation de génériques :
// C2990b.cpp
// compile with: /clr /c
generic <class T>
ref struct GC;
ref struct GC {}; // C2990
C2990 peut également se produire en raison d’un changement cassant dans le compilateur Microsoft C++ pour Visual Studio 2005 ; le compilateur exige maintenant que plusieurs déclarations pour le même type soient identiques en ce qui concerne la spécification du modèle.
L’exemple suivant génère l’erreur 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;
};