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
};