Erreur du compilateur C3231
'arg' : l’argument de type de modèle ne peut pas utiliser un paramètre de type générique
Les modèles sont instanciés au moment de la compilation, mais les génériques sont instanciés au moment de l’exécution. Ainsi, il n’est pas possible de générer du code générique pouvant appeler le modèle, car celui-ci ne peut pas être instancié au moment de l’exécution quand le type générique est enfin connu.
L’exemple suivant génère l’erreur C3231 :
// C3231.cpp
// compile with: /clr /LD
template <class T> class A;
generic <class T>
ref class C {
void f() {
A<T> a; // C3231
}
};