共用方式為


編譯器錯誤 C2974

無效的類型自變數 'number', 類型必須是

泛型或範本自變數不符合泛型或範本宣告。 類型應該會出現在角括弧內。 請檢查泛型或範本定義,以尋找正確的類型。

下列範例會產生 C2974:

// C2974.cpp
// C2974 expected
template <class T>
struct TC {};

template <typename T>
void tf(T){}

int main() {
   // Delete the following 2 lines to resolve
   TC<1>* tc;
   tf<"abc">("abc");

   TC<int>* tc;
   tf<const char *>("abc");
}

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

// C2974b.cpp
// compile with: /clr
// C2974 expected
using namespace System;
generic <class T>
ref struct GCtype {};

generic <typename T>
void gf(T){}

int main() {
   // Delete the following 2 lines to resolve
   GCtype<"a">^ gc;
   gf<"a">("abc");

   // OK
   GCtype<int>^ gc;
   gf<String ^>("abc");
}