在C ++中复制__PRETTY_FUNCTION__的行为

时间:2019-05-23 21:41:56

标签: c++ gcc visual-c++ cross-platform

在GCC中,C ++的__PRETTY_FUNCTION__的行为定义了什么?我想在Visual Studio中复制其功能。

据我了解,我可以replace __PRETTY_FUNCTION__ with either __FUNCTION__ or __FUNCSIG__,¹,但是那样的话,我将失去在macOS上编译代码的能力。

如何将__PRETTY_FUNCTION__的功能包含在我希望能够在Visual Studio和Xcode中进行编译的代码中。


  1. 很抱歉,如果我的问题的答案在the text I’m linking to或它提到的资源中。

1 个答案:

答案 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