我对RTTI知之甚少,但我相信,由于你可以在运行时检索变量的名称。 是否可以检索线程当前正在运行的函数的名称?
答案 0 :(得分:12)
C ++ 11为当前函数标准化__func__
。
各种编译器支持__FUNCTION__
,__PRETTY_FUNCTION__
和其他的变体。
答案 1 :(得分:2)
如果你正在做GNU兼容的东西,你可能想尝试backtrace。
答案 2 :(得分:0)
没有
C ++的run-time type identification允许您找出对象的类型,但不能确定您当前所使用的方法的名称。
答案 3 :(得分:0)
不,这是不可能的。 C ++不支持反射(既不是静态也不是动态)(例如C#)。你需要一些预处理器魔法来模仿它。
除此之外,在运行时不一定有函数/方法名称的概念(如果您使用相应的标志编译源代码,这仅作为调试信息提供)。