私は次のようなことをしたい:
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
私はかなりPRETTY_FUNCTIONを使用したいので、これは私の知る限りgnuでのみサポートされているので、g ++とMinGW用にコンパイルしているかどうかを検出する必要があります。私が知る必要があるのは、以下のマイクロソフトで行ったように、コンパイラのプリプロセッサ定義だけだと思います。
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin( __FUNCTION__ );
#define LogFuncEndSuccess() gLogger.FuncEndSuccess( __FUNCTION__ );
#endif
C++プリプロセッサでg ++とMinGWを検出するにはどうすればよいですか?
GCCの場合:
#ifdef __GNUC__
MinGWの場合:
#ifdef __MINGW32__
x86_64-w64-mingw32-gccは両方を定義します__MINGW32__
および__MINGW64__
。