小编iam*_*ter的帖子

在编译时(或运行时)获取c ++函数的错误名称

我有一个函数类方法,ValueHolder :: printValue

class ValueHolder {

public:
    void printValue ();
} ;
Run Code Online (Sandbox Code Playgroud)

如何在编译时(或运行时)确定其损坏的名称.

例如,我想这样做:

const char *mangled_name = GetMangledNameOfSymbol(&ValueHolder::printValue);
Run Code Online (Sandbox Code Playgroud)

此函数可能返回如下字符串:

"_ZN11ValueHolder10printValueEv"
Run Code Online (Sandbox Code Playgroud)

根据@Marco A.先决条件是现代编译器.一个支持typeid,并打开标志以启用此功能.

我也会接受一个可以为Gcc&Clang实用的答案,以及一个MSVC的存根.

c++ name-mangling

13
推荐指数
3
解决办法
2481
查看次数

标签 统计

c++ ×1

name-mangling ×1