Teilen über


Compilerfehler C2931

'class' : type-class-id neu definiert als Memberfunktion von 'Identifier'

Bemerkungen

Sie können eine generische oder Vorlagenklasse nicht als Memberfunktion einer anderen Klasse verwenden.

Dieser Fehler ist in Visual Studio 2022 und höheren Versionen veraltet.

Dieser Fehler kann dadurch verursacht werden, dass geschweifte Klammern nicht korrekt übereinstimmen.

Examples

Im folgenden Beispiel wird C2931 generiert:

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

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

C2931 kann auch auftreten, wenn Generics verwendet werden:

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