编译器错误 C3399

“type”:创建泛型参数的实例时无法提供变量

当指定 gcnew() 约束时,指定约束类型将具有无参数的构造函数。 因此,尝试实例化此类型并传递参数是错误的。

有关详细信息,请参阅泛型类型参数的约束 (C++/CLI)

示例

以下示例生成 C3399。

// C3399.cpp
// compile with: /clr /c
generic <class T>
where T : gcnew()
void f() {
   T t = gcnew T(1);   // C3399
   T t2 = gcnew T();   // OK
}