Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Displaying fully qualified name of the function

Tags:

c++

function

#include <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 ?

like image 272
lakshmanan Avatar asked May 27 '11 11:05

lakshmanan


1 Answers

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

like image 111
Prasoon Saurav Avatar answered Nov 12 '22 20:11

Prasoon Saurav