Je veux faire quelque chose comme:
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
Étant donné que je veux utiliser pretty PRETTY_FUNCTION cela n'est pris en charge par gnu qu'à ma connaissance, j'ai donc besoin de détecter si je compile pour g ++ et MinGW, comment puis-je faire cela? Je suppose que tout ce que je dois savoir, ce sont les définitions de préprocesseur du compilateur, comme je l'ai fait pour Microsoft ci-dessous.
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin( __FUNCTION__ );
#define LogFuncEndSuccess() gLogger.FuncEndSuccess( __FUNCTION__ );
#endif
Comment détecter g ++ et MinGW dans le préprocesseur C++?
Vous pouvez utiliser:
#ifdef __GNUC__
#ifdef __MINGW32__
Pour les macros supplémentaires, vous pourriez être intéressé par cette page qui montre d'autres macros du compilateur
Pour GCC:
#ifdef __GNUC__
Pour MinGW:
#ifdef __MINGW32__
x86_64-w64-mingw32-gcc définit les deux __MINGW32__
et __MINGW64__
.