Teilen über


Compilerfehler C2942

'class' : type-class-id neu definiert als formales Argument einer Funktion

Bemerkungen

Sie können eine generische oder Vorlagenklasse nicht als formales Argument verwenden. Ein Argument kann nicht direkt an den Konstruktor einer generischen oder Vorlagenklasse übergeben werden.

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

Examples

Im folgenden Beispiel wird C2942 generiert:

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

// OK
struct TC2 {};
void f(TC2 i) {}

C2942 kann auch auftreten, wenn Generics verwendet werden:

// C2942b.cpp
// compile with: /clr /c
generic<class T>
ref struct GC {};
void f(int GC<int>) {}   // C2942
ref struct GC2 { };
void f(int GC2) {}