Partager via


Erreur du compilateur C2931

'class' : type-class-id redéfini en tant que fonction membre de 'identifier'

Vous ne pouvez pas utiliser une classe générique ou modèle comme fonction membre d’une autre classe.

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

Cette erreur peut être provoquée par une mise en correspondance incorrecte des accolades.

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

// C2931.cpp
// compile with: /c
template<class T>
struct TC { };
struct MyStruct {
   void TC<int>();   // C2931
};

struct TC2 { };
struct MyStruct2 {
   void TC2();
};

L’erreur C2931 peut également se produire lors de l’utilisation de génériques.

// C2931b.cpp
// compile with: /clr /c
generic<class T> ref struct GC {};
struct MyStruct {
   void GC<int>();   // C2931
   void GC2();   // OK
};