voglio fare qualcosa di simile:Come posso rilevare g ++ e MinGW nel preprocessore C++?
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
Dato che voglio usare abbastanza PRETTY_FUNCTION questo è supportata solo da GNU per quanto ne so quindi ho bisogno di rilevare se sto eseguendo la compilazione di g ++ e MinGW, Come lo posso fare? Sto indovinando tutto quello che ho bisogno di sapere sono le definizioni del preprocessore del compilatore, come ho fatto per Microsoft qui sotto.
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin(__FUNCTION__);
#define LogFuncEndSuccess() gLogger.FuncEndSuccess(__FUNCTION__);
#endif
Come posso rilevare g ++ e MinGW nel preprocessore C++?
I casi di test includevano MinGW-64? – jww
@jww No, ma MinGW-64 definirà anche la macro 32, quindi funzionerebbe anche per quello. –
Una versione più aggiornata di tale elenco di macro del compilatore si trova nel [Pre-defined Compiler Macros project a sourceforge] (https://sourceforge.net/p/predef/wiki/Home/) – rakslice