Condividi tramite


Errore del compilatore C2931

'class': type-class-id ridefinito come funzione membro di 'identifier'

Non è possibile usare una classe generica o modello come funzione membro di un'altra classe.

Questo errore è obsoleto in Visual Studio 2022 e versioni successive.

Questo errore può verificarsi quando le parentesi graffe non corrispondono.

L'esempio seguente genera l'errore C2931:

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

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

C2931 può verificarsi anche quando si usano i generics:

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