Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Compiler Error C3227
Collapse the table of content
Expand the table of content

Compiler Error C3227

Error Message

'parameter' : cannot use 'keyword' to allocate a generic type

In order to instantiate a type, an appropriate constructor is required. However, the compiler is not able to ensure that an appropriate constructor is available.

You can use templates instead of generics to resolve this error, or you can use one of several methods to create an instance of the type.


The following sample generates C3227.

// C3227.cpp
// compile with: /clr /c
generic<class T> interface class ICreate {
   static T Create();

generic <class T>
where T : ICreate<T>
ref class C {
   void f() {
      T t = new T;   // C3227

      // OK
      T t2 = ICreate<T>::Create();
      T t3 = safe_cast<T>( System::Activator::CreateInstance(T::typeid) );

Community Additions

© 2015 Microsoft