E2355 Rekursive Template-Funktion: 'x' instantiiert 'y' (C++)
Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index
Der Compiler hat eine rekursive Template-Funktion vorgefunden. Ein Beispiel:
template<class T> void f(T x)
{
f((T*)0); // rekursive Template-Funktion!
}
void main()
{
f(0);
}
Der Compiler gibt für jede Verschachtelung der rekursiven Instantiierung eine Meldung aus, sodass es normalerweise offensichtlich ist, wo die Rekursion aufgetreten ist. Um ein rekursives Template zu beseitigen, verändern Sie entweder die Abhängigkeiten, oder Sie erstellen eine spezielle Version, die die Rekursion ausschließt. Fügen Sie zum Beispiel die folgende Funktionsdefinition in das obige Programm ein, entfernen Sie damit die endlose Rekursion:
void f(int **)
{
}