我想做类似这样的事情:
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
由于我想使用__PRETTY_FUNCTION__
,据我所知,这只有GNU支持,因此我需要检测是否正在为g++和MinGW编译,我该怎么做? 我猜我只需要知道编译器的预处理器定义,就像我在下面为Microsoft所做的那样:
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin( __FUNCTION__ );
#define LogFuncEndSuccess() gLogger.FuncEndSuccess( __FUNCTION__ );
#endif
在C++预处理器中,我如何检测g++和MinGW?
__GNUG__
,它等同于(__GNUC__ && __cplusplus)
,如果你想区分C++和C。 - Alex Che