E2418 Maximale Instantiierungstiefe überschritten; suchen Sie nach Rekursionen (C++)
Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index
Wenn der Compiler mehr als die von ihm unterstützten 256 Instantiierungsebenen benötigt, generiert er diesen Fehler. Das Hauptproblem besteht in der Kontrolle der Stack-Tiefe, da der Parser die Typ-Instantiierung mithilfe rekursiver Funktionen verwaltet. Hier ein Beispiel, das diesen Fehler generiert:
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; // Fehler: maximale Instantiierungstiefe überschritten
}