【发布时间】:2017-04-09 23:03:57
【问题描述】:
我有一个函数类方法,ValueHolder::printValue
class ValueHolder {
public:
void printValue ();
} ;
如何在编译时(或运行时)确定它的重命名。
例如,我想这样做:
const char *mangled_name = GetMangledNameOfSymbol(&ValueHolder::printValue);
此函数可能会返回如下字符串:
"_ZN11ValueHolder10printValueEv"
根据@Marco A。先决条件是现代编译器。支持 typeid 并打开标志以启用此功能的一种。
我还将接受一个适用于 Gcc 和 Clang 的实用答案,以及一个适用于 MSVC 的存根。
【问题讨论】:
标签: c++ name-mangling