【问题标题】:Displaying fully qualified name of the function显示函数的完全限定名
【发布时间】:2011-05-27 19:34:45
【问题描述】:
#include <iostream>
class A{
    public:
    void myfunction(){
        std::cout << __func__; 
    }
};
int main(){
    A obj;
    obj.myfunction();
}

输出为myfunction。不幸的是__funct__ 不起作用。如何输出成员函数的全限定名A::myfunction

【问题讨论】:

    标签: c++ function


    【解决方案1】:

    没有相同的标准定义方式。但是,如果您使用 gcc,则可以使用 __PRETTY_FUNCTION__ 而不是 __func__

    标准 C++(即 C++03)没有 __func____PRETTY_FUNCTION__

    C++0x 派生自 C99 的 __func__,并在 8.4.2/8 (n3290) 中定义

    函数局部预定义变量__func__被定义为表单的定义

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

    已提供,其中 function-name 是实现定义的字符串

    【讨论】:

    • 我相信 __PRETTY_FUNCTION__ 成为 C++0x 的标准?
    • 啊,原来如此,原来是__func__
    • 仍然,出于某些目的,仍然存在在编译时剥离返回类型的问题,这可能不是微不足道的(在第一个左边第一个空格的 'cut打开括号',但尝试在编译时执行那个
    【解决方案2】:

    正如@Prasoon 所说,没有标准方法。
    对于 Visual Studio,__FUNCTION__ 显示完全限定名称。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2013-11-27
    • 2020-05-18
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多