Erro do compilador C3227
'parameter': não é possível usar 'keyword' para alocar um tipo genérico
Para criar uma instância de um tipo, um construtor apropriado é necessário. No entanto, o compilador não é capaz de garantir que um construtor apropriado esteja disponível.
Você pode usar modelos em vez de genéricos para resolver esse erro ou pode usar um dos vários métodos para criar uma instância do tipo.
Exemplo
O exemplo a seguir gera o erro 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) );
}
};