una - ¿Cómo puedo detectar g++ y MinGW en el preprocesador de C++?
en make la variable que identifica el preprocesador de c se define (2)
Quiero hacer algo como:
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
Como quiero usar bastante PRETTY_FUNCTION, esto solo lo admite gnu, por lo que necesito saber si estoy compilando para g ++ y MinGW, ¿cómo puedo hacer eso? Supongo que todo lo que necesito saber son las definiciones del preprocesador del compilador, como hice para Microsoft a continuación.
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin( __FUNCTION__ );
#define LogFuncEndSuccess() gLogger.FuncEndSuccess( __FUNCTION__ );
#endif
¿Cómo puedo detectar g ++ y MinGW en el preprocesador de C ++?
Para GCC:
#ifdef __GNUC__
Para MinGW:
#ifdef __MINGW32__
x86_64-w64-mingw32-gcc define ambos __MINGW32__
y __MINGW64__
.
Puedes hacer uso de:
#ifdef __GNUC__
#ifdef __MINGW32__
Para macros adicionales, puede interesarle esta página que muestra otras macros del compilador