问题描述
|
#include <iostream>
class A{
public:
void myfunction(){
std::cout << __func__;
}
};
int main(){
A obj;
obj.myfunction();
}
输出为myfunction
。不幸的是__funct__
不起作用。如何输出成员函数的全限定名称,即A::myfunction
?
解决方法
没有标准的定义方法。但是,如果您使用的是gcc,则可以使用
__PRETTY_FUNCTION__
代替__func__
。
标准C ++(即C ++ 03)没有__func__
或__PRETTY_FUNCTION__
。
C ++ 0x从C99派生__func__
并且在8.4.2 / 8(n3290)中定义
定义函数局部的预定义变量“ 5”,就像形式的定义一样
static const char __func__[] = \"function-name \";
已经提供,其中function-name是实现定义的字符串
, 正如@Prasoon所说,没有标准方法。
对于Visual Studio,“ 11”显示标准名称。