Erreur du compilateur C3227
'parameter' : impossible d’utiliser 'keyword' pour allouer un type générique
Pour instancier un type, un constructeur approprié est requis. Toutefois, le compilateur n’est pas en mesure de s’assurer qu’un constructeur approprié est disponible.
Vous pouvez utiliser des modèles plutôt que des génériques pour résoudre cette erreur, ou vous pouvez utiliser l’une des méthodes pour créer une instance du type.
Exemple
L’exemple suivant génère l’erreur 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) );
}
};