chcę zrobić coś takiego:Jak wykryć g ++ i MinGW w preprocesorze C++?
#ifdef GCC
#define GetFunctionName() string("My function name is ") + __PRETTY_FUNCTION__;
#endif
Ponieważ chcę użyć dość PRETTY_FUNCTION ten jest obsługiwany tylko przez gnu o ile wiem, więc trzeba wykryć, czy jestem kompilacji dla g ++ i MinGW, jak mogę to zrobić? Zgaduję, że wszystko, co muszę wiedzieć, to preprocesorowe definicje kompilatora, tak jak zrobiłem to dla Microsoftu poniżej.
#ifdef WIN32
#define LogFuncBegin() gLogger.FuncBegin(__FUNCTION__);
#define LogFuncEndSuccess() gLogger.FuncEndSuccess(__FUNCTION__);
#endif
Jak wykryć g ++ i MinGW w preprocesorze C++?
Czy Twoje przypadki testowe zawierały MinGW-64? – jww
@jww Nie, ale MinGW-64 również zdefiniuje 32 makro, więc to też będzie działać. –
Bardziej aktualna wersja tej listy makr kompilatora znajduje się w projekcie [Wstępnie zdefiniowane makra kompilujące na sourceforge] (https://sourceforge.net/p/predef/wiki/Home/) – rakslice