C ++ - 通过宏获取函数名

时间:2018-04-11 15:46:14

标签: c++ c++11 macros

我试图通过使用C ++宏来获取函数的名称。我使用g ++ 4.9.2并使用以下代码:

#include <iostream>

template<typename T>
class Foo {
public:
        Foo() { }

        T f(int i) {
                T r;
                std::cout << __PRETTY_FUNCTION__ << std::endl;
                std::cout << __FUNCTION__ << std::endl;
                std::cout << __func__ << std::endl;

                return r;
        }
};

int main() {
        Foo<int> f;
        f.f(1);

        return 0;
}

我得到了:

T Foo<T>::f(int) [with T = int]
f
f

我想使用Foo<T>::f(int)在Windows中拥有Foo<int>::f(int)__FUNCTION__之类的内容。我尝试使用BOOST_CURRENT_FUNCTION,但查看我读过的代码,应该将变量设置为__func__的值。

显然,创建一个能够执行我想要的功能可能非常简单,但是我希望将宏设置为正确的值。

0 个答案:

没有答案