#pragma once oder #ifndef



  • also wenn ich in visual studio ne neue klasse anlege, schreibt er immer #pragma once rein. Aber das versteht doch nur VS compiler

    warum legt VS nicht
    #ifndef _BLAH_
    #define _BLAH_

    #endif // _BLAH_

    an?



  • Siehe http://en.wikipedia.org/wiki/Pragma_once - Absatz "Advantages and disadvantages".
    GCC versteht #pragma once übrigens auch. Der Intel Compiler für Windows sowieso (der für Linux vermutlich auch - keine Ahnung).

    Ideal ist IMO wenn man beides macht, also #ifndef + #pragma once.

    Warum VS nur #pragma once reinschreibt? Vermutlich weil MS die Kompatibilität zu anderen Compilern ziemlich egal ist, und weil nur #pragma once "hübscher" ist.



  • Bei nativem C++ schreib ich immer #ifndef, aber bei C++/CLI kann man glaub ich schon davon ausgehen, dass, wenn ein kompletter Compiler für das .NET-Framework geschrieben wird, auch #pragma once unterstützt wird.


Anmelden zum Antworten