E2218 Les modèles ne peuvent être déclarés qu'au niveau d'un espace de nommage ou d'une classe (C++)
Remonter à Erreurs et avertissements du compilateur (C++) - Index
Les modèles ne peuvent pas être déclarés à l'intérieur d'une classe ou d'une fonction. Ils sont uniquement autorisés dans la portée globale ou au niveau du fichier.
Par exemple :
void func() { template <class T> myClass { // Erreur T i; }; }