Отображение полного имени функции - PullRequest
6 голосов
/ 27 мая 2011
#include <iostream>
class A{
    public:
    void myfunction(){
        std::cout << __func__; 
    }
};
int main(){
    A obj;
    obj.myfunction();
}

Выход myfunction. К сожалению __funct__ не работает. Как вывести полное имя функции-члена, т.е. A::myfunction?

Ответы [ 2 ]

9 голосов
/ 27 мая 2011

Не существует стандартного определенного способа для того же.Однако если вы используете gcc, вы можете использовать __PRETTY_FUNCTION__ вместо __func__.

Стандартный C ++ (то есть C ++ 03) не имеет __func__ или __PRETTY_FUNCTION__.

C ++ 0x наследует __func__ от C99 и определяется в 8.4.2 / 8 (n3290)

Функционально-локальная предопределенная переменная __func__ определяется так, как если бы она определялабыла предоставлена ​​форма

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

, где имя-функции - это строка, определяемая реализацией

3 голосов
/ 27 мая 2011

Как говорит @Prasoon, стандартного пути не существует.
Для Visual Studio __FUNCTION__ отображает полное имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...