是否有可能在C ++中获取当前(成员)函数名称?

时间:2012-01-07 13:04:39

标签: c++

我对RTTI知之甚少,但我相信,由于你可以在运行时检索变量的名称。 是否可以检索线程当前正在运行的函数的名称?

4 个答案:

答案 0 :(得分:12)

C ++ 11为当前函数标准化__func__

各种编译器支持__FUNCTION____PRETTY_FUNCTION__和其他的变体。

答案 1 :(得分:2)

如果你正在做GNU兼容的东西,你可能想尝试backtrace

答案 2 :(得分:0)

没有

C ++的run-time type identification允许您找出对象的类型,但不能确定您当前所使用的方法的名称。

答案 3 :(得分:0)

不,这是不可能的。 C ++不支持反射(既不是静态也不是动态)(例如C#)。你需要一些预处理器魔法来模仿它。

除此之外,在运行时不一定有函数/方法名称的概念(如果您使用相应的标志编译源代码,这仅作为调试信息提供)。