E2418 Profondeur d'instanciation maximum dépassée ; vérifiez la récursivité (C++)
Remonter à Erreurs et avertissements du compilateur (C++) - Index
Le compilateur ne supporte que 256 niveaux d'instanciation avant de déclencher cette erreur. Le problème principal est le contrôle de la profondeur de la pile, car l'analyseur utilise des fonctions récursives pour gérer l'instanciation de type. Voici un exemple de ce qui pourrait produire une telle erreur :
template<int T> class foo { public: static const int x = foo<T – 1>::x; }; template<int T> class foo<1> { public: static const int x = 1; }; int main() { int y = foo<100000>::x;// erreur : profondeur d'instanciation dépassée }