Ich möchte wie etwas tun:Wie kann ich g ++ und MinGW in C++ Präprozessor erkennen?
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
Da I verwenden wollen, dieses hübsche PRETTY_FUNCTION nur von Gnu unterstützt, soweit ich weiß, so muss ich feststellen, ob ich für g bin Kompilieren ++ und MinGW, wie kann ich das machen? Ich denke, alles, was ich wissen muss, sind die Präprozessordefinitionen des Compilers, wie ich es für Microsoft unten getan habe.
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin(__FUNCTION__);
#define LogFuncEndSuccess() gLogger.FuncEndSuccess(__FUNCTION__);
#endif
Wie kann ich g ++ und MinGW in C++ Präprozessor erkennen?
Haben Ihre Testfälle MinGW-64 enthalten? – jww
@jww Nein, aber MinGW-64 definiert auch das Makro 32, also würde das auch funktionieren. –
Eine aktuellere Version dieser Compiler-Makrosliste befindet sich im [Pre-defined Compiler Macros-Projekt bei sourceforge] (https://sourceforge.net/p/predef/wiki/Home/) – rakslice