编译器错误 C2976

“identifier”:类型参数过少

泛型或模板缺少一个或多个实际参数。 检查泛型或模板声明,以查找正确的参数数目。

此错误可能是由于 C++ 标准库组件中缺少模板参数造成的。

以下示例生成 C2976:

// C2976.cpp
template <class T>
struct TC {
   T t;
};
int main() {
   TC<>* t;   // C2976
   TC<int>* t2;   // OK
}

在使用泛型时,C2976 也可能会发生:

// C2976b.cpp
// compile with: /clr
generic <class T>
ref struct GC {
   T t;
};

int main() {
   GC<>^ g;   // C2976
   GC<int>^ g2;   // OK
}