在GCC中,C ++的__PRETTY_FUNCTION__
的行为定义了什么?我想在Visual Studio中复制其功能。
据我了解,我可以replace __PRETTY_FUNCTION__
with either __FUNCTION__
or __FUNCSIG__
,¹,但是那样的话,我将失去在macOS上编译代码的能力。
如何将__PRETTY_FUNCTION__
的功能包含在我希望能够在Visual Studio和Xcode中进行编译的代码中。
答案 0 :(得分:6)
根据您的编译器定义引用__FUNCTION__
或__PRETTY_FUNCTION__
的自己的宏:
#ifdef _MSC_VER
#define MY_FUNCTION_MACRO __FUNCTION__ // or __FUNCSIG__
#else
#define MY_FUNCTION_MACRO __PRETTY_FUNCTION__
#endif
然后在整个跨平台代码中使用MY_FUNCTION_MACRO
。