共用方式為


編譯器錯誤 C2942

'class' :type-class-id 重新定義為函式的正式自變數

您無法使用泛型或範本類別作為正式自變數。 您無法將引數直接傳遞給泛型或樣板類別的建構函式。

在 Visual Studio 2022 和更新版本中,此錯誤已經過時。

下列範例會產生 C2942:

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

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

使用泛型時,也會發生 C2942:

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