Compiler Error C3399
'type' : cannot provide arguments when creating an instance of a generic parameter
When you specify the gcnew()
constraint, you specify that the constraint type will have a parameterless constructor. Therefore, it is an error to attempt to instantiate that type and pass a parameter.
See Constraints on Generic Type Parameters (C++/CLI) for more information.
Example
The following sample generates 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
}