Delen via


Compilerfout C2942

'klasse': type-klasse-id opnieuw gedefinieerd als een formeel argument van een functie

Opmerkingen

U kunt geen algemene of sjabloonklasse gebruiken als een formeel argument. U kunt een argument niet rechtstreeks doorgeven aan de constructor van een algemene of sjabloonklasse.

Deze fout is verouderd in Visual Studio 2022 en nieuwere versies.

Voorbeelden

In het volgende voorbeeld wordt C2942 gegenereerd:

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

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

C2942 kan ook optreden bij het gebruik van generics:

// 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) {}