#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.