Ich vermute, dass Ihr Test fehlerhaft ist. Sie können nicht mit nur einer solchen Datei testen, ob der Compiler den Inline-Spezifizierer ignoriert oder nicht.
Sie müssen den Header mit der Inline-Funktionsdefinition einschließen und ihn in mehrere Implementierungsdateien einbeziehen, die dann miteinander verknüpft werden. Wenn Sie Linkerfehler über mehrere definierte Instanzen dieser Funktionen erhalten, dann ist der Compiler Ignorieren der Inline-Spezifizierer in Bezug auf seine wichtigste Eigenschaft: Zulassen, dass es mehrmals über das gesamte Programm definiert wird, während immer noch die gleiche Adresse für es und seine lokale statische Variablen.
Was Ihr Test wahrscheinlich prüft, ist, ob der Compiler den Aufruf der Funktion inliniert, was eigentlich nur ein Hinweis auf den Compiler ist und nur eine kleine von vielen anderen wichtigeren Konsequenzen des Inline-Spezifizierers. Wenn der Compiler keinen Aufruf an die Funktion inline aufruft, ist es in Ordnung. Der Standard verlangt nicht, dass er in dieser Angelegenheit etwas unternimmt.
Neben den hinterhältigen Destruktoraufrufen können rekursive Tailfunktionen in eine Schleife "eingebunden" werden, obwohl dies die Definition von Inlining erweitert.:) –
danke für die Antwort, aber das beantwortet meine Frage nicht –
dann machen Sie Ihre Frage klarer –