Partager via


Erreur du compilateur C2944

'class' : type-class-id redéfini comme argument valeur d’un modèle

Vous ne pouvez pas utiliser une classe générique ou modèle, au lieu d’un symbole, comme argument de valeur de modèle.

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

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

// C2944.cpp
// compile with: /c
template<class T>
class TC { };

template <int TC<int> > struct X1 { };   // C2944

template <class T > struct X2 {};

L’erreur C2944 peut également se produire lors de l’utilisation de génériques :

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

template <int GC<int> > struct X2 { };   // C2944
template <class T> struct X3 {};   // OK