Partager via


Erreur du compilateur C2940

'class' : type-class-id redéfini en tant que typedef local

Vous ne pouvez pas utiliser une classe générique ou de modèle en tant que classe locale typedef.

Cette erreur est obsolète dans Visual Studio 2022 et versions ultérieures.

L’exemple suivant génère l’erreur C2940 :

// C2940.cpp
template<class T>
struct TC {};
int main() {
   typedef int TC<int>;   // C2940
   typedef int TC;   // OK
}

L’erreur C2940 peut aussi se produire lors de l’utilisation de génériques :

// C2940b.cpp
// compile with: /clr
generic<class T>
ref struct GC { };

int main() {
   typedef int GC<int>;   // C2940
   typedef int GC;
}