开发者

Displaying fully qualified name of the function

#in开发者_Go百科clude <iostream>
class A{
    public:
    void myfunction(){
        std::cout << __func__; 
    }
};
int main(){
    A obj;
    obj.myfunction();
}

Output is myfunction. Unfortunately __funct__ does not work. How to output the fully qualified name of the member function i.e A::myfunction ?


There is no standard defined way for the same. However if you are using gcc you can use __PRETTY_FUNCTION__ instead of __func__.

Standard C++ (i.e C++03) does not have either __func__ or __PRETTY_FUNCTION__.

C++0x derives __func__ from C99 and it is defined in 8.4.2/8 (n3290)

The function-local predefined variable __func__ is defined as if a definition of the form

static const char __func__[] = "function-name ";

had been provided, where function-name is an implementation-defined string


As @Prasoon says, there's no standard way.
For Visual Studio, __FUNCTION__ displays the fully qualified name.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜