Kann GCC mittlerweile #pragma once?



  • Es gibt doch hier genug Linux-User, die vielleicht auch aktuelle GCC-Versionen nutzen. Deshalb meine Frage: kennt GCC mittlerweile #pragma once?



  • http://www.la.utexas.edu/lab/software/devtool/gnu/cpp/cpp_46.html schrieb:

    #pragma once

    This pragma was once used to tell the preprocessor that it need not include a file more than once. It is now obsolete and should not be used at all.

    Warum nicht einfach den guten alten Include-Wächter? Der ist wenigstens portabel.



  • Weil der alte Includewächter mehr Tipparbeit bedeutet und nach meinem Empfinden somit lästig ist. Selbst #prama once ist eigentlich schon zu viel.

    Gut, muß der GCC halt mal wieder aus der Reihe tanzen... werd ich mir (leider) merken müssen.



  • Unterm VC zumindest ist #pragma once signifikant schneller im Vergleich zu include-guards, lohnt sich also auf jeden Fall das zu verwenden (kann man ja schön in nen #ifdef-block packen).



  • Artchi schrieb:

    Weil der alte Includewächter mehr Tipparbeit bedeutet und nach meinem Empfinden somit lästig ist. Selbst #prama once ist eigentlich schon zu viel.

    Sowas kann doch jede brauchbare IDE - und damit bestimmt auch VC++ - automatisch generieren. Aber das Tipparbeit-Argument gefällt mir richtig gut, ist ein guter Grund, einen bestimmten Compiler nicht zu verwenden. 😃

    Gut, muß der GCC halt mal wieder aus der Reihe tanzen... werd ich mir (leider) merken müssen.

    pragmas sind doch genau dazu da, dass man Sachen implementieren kann, die kein Standard sind; insofern tanzt nicht der gcc aus der Reihe, sondern der VC++ hat eben ein Feature, das der GCC nicht hat.

    any schrieb:

    Unterm VC zumindest ist #pragma once signifikant schneller im Vergleich zu include-guards, lohnt sich also auf jeden Fall das zu verwenden (kann man ja schön in nen #ifdef-block packen).

    Wenn man das verwendet, dann sollte man natürlich #ifdefs darum machen. (Ist dann aber natürlich wieder mehr Schreibarbeit als der Include-Guard. 😉
    Habe aber vor einiger Zeit gelesen, dass pragma once gar nicht so viel schneller ist als klassische Include-Guards. Ach ja, hier war das... 😕



  • Den GGC hatte ich auch nie vor zu benutzen. Deshalb frage ich also nicht. Es ging also nicht darum, ob ich ihn morgen benutze oder nicht, ich hatte es nie vor. Ich frage nur nach, um zu wissen, ob z.B. eine Lib von mir auf den bekanntesten Compiler laufen würde.



  • Nur mit derartigen Fragen wirst Du das aber nicht herausfinden. Aber das weißt Du ja ohnehin. 😉



  • Mir ist schon bewusst, das ich es z.B. auf dem GCC ausprobieren müsste um es zu wissen. Aber durch solche Fragen kann ich schon mal das gröbste aussortieren.



  • Kann sogar sein, dass der GCC so etwas noch beherscht. Es ist aber nicht ohne Grund als obsolet gekennzeichnet, da es wie gesagt nicht portabel ist.

    An so einer Kleinigkeit würde ich mich aber nicht festnageln wollen. Aber wenn du Spaß daran hast, dann bitte ...


Anmelden zum Antworten