E2355 Rekursive Template-Funktion: 'x' instantiiert 'y' (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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 **)
     {
     }