headerdateien nach konvention erstellen ist langsam?



  • Bashar schrieb:

    Falsche Frage. Richtiger: "Seit wann ist das nicht mehr so?" Was du als selbstverständlich annimmst erfordert schon einigen Aufwand seitens des Compiler/Linker-Gespanns.

    Dann hätte man womöglich meine Frage falsch verstanden. 😉

    Und ich schätze es sehr, dass mir der Compiler und der Linker einige Arbeit abnehmen. Tut mir leid, wenn ich den Compilerbauern zu wenig Respekt gezollt habe. 😉



  • Seit wann ist das so? Der Compiler kann doch auch Inline-Optimierungen bei Funktionen in Implementierungsdateien vornehmen.

    Gute Compiler tun das auch.

    MSVC z.B. kann das seit Version 8 aka. 2005 (ab Version 7.1 theoretisch, praktisch aber nicht zu empfehlen da zu buggy).

    GCC kann das mit den passenden Einstellungen vermutlich auch, hab das aber nicht überprüft.



  • hustbaer schrieb:

    Seit wann ist das so? Der Compiler kann doch auch Inline-Optimierungen bei Funktionen in Implementierungsdateien vornehmen.

    Gute Compiler tun das auch.

    MSVC z.B. kann das seit Version 8 aka. 2005 (ab Version 7.1 theoretisch, praktisch aber nicht zu empfehlen da zu buggy).

    GCC kann das mit den passenden Einstellungen vermutlich auch, hab das aber nicht überprüft.

    Nur daß ich das richtig verstehe, die Rede ist doch von Inline-Funktionen, die in einer anderen Übersetzungseinheit definiert sind, richtig?

    Kann man irgendwo nachlesen, wie das beim MSVC funktioniert?



  • dooooomi schrieb:

    Kann man irgendwo nachlesen, wie das beim MSVC funktioniert?

    Stichwort "linktime code generation".

    EDIT:
    Zum Beispiel http://msdn.microsoft.com/en-us/magazine/cc301698.aspx



  • natürlich habt ihr recht mit LTCG.

    aber der thread starter wird mit seinem devc++ mitgelieferten compiler diesbezüglich nicht weit kommen 🙂



  • inpimp schrieb:

    natürlich habt ihr recht mit LTCG.

    aber der thread starter wird mit seinem devc++ mitgelieferten compiler diesbezüglich nicht weit kommen 🙂

    Darüberhinaus ändert LTCG ja auch nichts an der One Definition Rule, für die das Keyword inline immernoch von essentieller Bedeutung ist 🙂

    Man kann es aber trotzdem mal erwähnt haben, da es schnell heißt, dass Inlining über Codefilegrenzen hinweg nicht möglich sei.



  • LordJaxom schrieb:

    Man kann es aber trotzdem mal erwähnt haben, da es schnell heißt, dass Inlining über Codefilegrenzen hinweg nicht möglich sei.

    Das hat dann aber mit dem inline-Schlüsselwort nichts mehr zu tun, sondern ist eine Optimierung, die vollständig hinter den (durch den C++-Standard gegebenen) Kulissen abläuft.



  • inpimp schrieb:

    aber der thread starter wird mit seinem devc++ mitgelieferten compiler diesbezüglich nicht weit kommen 🙂

    War also doch nicht so schlecht, ihm davon abzuraten. 😉



  • Es ging ursprünglich um "effektiv inline", nicht um "grammatikalisch inline".
    Und "effektiv inline" können eben manche Compiler dank LTCG (oder wie auch immer ein bestimmter Compiler es gerade nennt) auch mit Funktionen die nicht überall inkludiert werden und grammatikalisch eben auch nicht inline sind.



  • Nexus schrieb:

    inpimp schrieb:

    aber der thread starter wird mit seinem devc++ mitgelieferten compiler diesbezüglich nicht weit kommen 🙂

    War also doch nicht so schlecht, ihm davon abzuraten. 😉

    das stimmt, danke 🙂
    hab dev-c++ eh nur aus gewohnheit genutzt, aber die nicht-weiterentwicklung hat mich auch schon gewurmt. war nur noch zu unmotiviert, nach alternativen zu suchen.
    find code::blocks gut, mich wundert da nur eine sache:
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1620824.html#1620824

    vielleicht hat ja jemand "aus diesem bereich hier" eine antwort 😉



  • mammamia;


Anmelden zum Antworten