编译器错误 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
}