Sdílet prostřednictvím


Chyba kompilátoru C2942

'class' : type-class-id redefined as a formal argument of a function

Poznámky

Jako formální argument nemůžete použít obecnou třídu nebo třídu šablony. Argument nelze předat přímo konstruktoru obecné třídy nebo třídy šablony.

Tato chyba je zastaralá v sadě Visual Studio 2022 a novějších verzích.

Examples

Následující příklad vygeneruje C2942:

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

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

K C2942 může také dojít při použití obecných typů:

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