Compiler Error C3399

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at 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.

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  
}  

Show: