E2392 L'instance du modèle 'template' est déjà instanciée (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

Il y a deux façons de déclencher cette erreur. Si –A est activée (mode compatible ANSI), alors la tentative d'instanciation explicite d'une spécialisation de modèle qui a déjà été instanciée (soit implicitement, soit explicitement) provoquera cette erreur. Indépendamment de –A, la tentative de spécialisation explicite d'une spécialisation de modèle ayant déjà été instanciée (soit implicitement, soit explicitement) déclenchera toujours cette erreur. Par exemple :



 template<class T>
 class foo;
 foo<char> x;     // provoque l'instanciation implicite de "foo<char>"
 template<>
 class foo<char> { };   // erreur : "foo<char>" déjà instancié
 template class foo<char>;   // erreur dans le mode –A, sinon avertissement