was ist / sind der / die Zweck (e) von Inline?

Ich hatte einDiskussio mitJohannes Schaub zum Keywordinline. Der Code dort war dieser:

namespace ... {
    static void someFunction() {
        MYCLASS::GetInstance()->someFunction();
    }
};

Das hat er gesagt

enn Sie dies als Inline-Funktion ausführen, wird möglicherweise die Codegröße in der ausführbaren Datei gespeicher

Aber nach meinen ErkenntnissenHie undHie es wäre nicht nötig, da:

[Inline] tritt nur auf, wenn die Kosten-Nutzen-Analyse des Compilers zeigt, dass es rentabel istMainstream C ++ - Compiler wie Microsoft Visual C ++ und GCC unterstützen eine Option, mit der die Compiler automatisch alle geeigneten Funktionen einbinden können, auch solche, die nicht als Inline-Funktionen gekennzeichnet sind.

Johannes gibt jedoch an, dass es andere Vorteile gibt, wenn man es explizit spezifiziert. Leider verstehe ich sie nicht. Zum Beispiel erklärte er, dassUnd "inline" ermöglicht es Ihnen, die Funktion im Programm mehrmals zu definieren., das ich nur schwer verstehen kann (und auf das ich Verweise finde).

S

Istinline nur eine Empfehlung für den Compiler? Sollte es ausdrücklich angegeben werden, wenn Sie eine kleine Funktion haben (ich denke, 1-4 Anweisungen?)Welche weiteren Vorteile bietet das Schreiben voninline?wird es benötigt, um @ anzugebinline um die ausführbare Dateigröße zu reduzieren, obwohl der Compiler (laut Wikipedia [I know, bad reference]) solche Funktionen selbst finden sollte?

Ist da noch etwas, was ich vermisse?

Antworten auf die Frage(18)

Ihre Antwort auf die Frage