“__cxa_demangle”中的“cxa”前缀是啥意思?

Posted

技术标签:

【中文标题】“__cxa_demangle”中的“cxa”前缀是啥意思?【英文标题】:What does the "cxa" prefix mean in "__cxa_demangle"?“__cxa_demangle”中的“cxa”前缀是什么意思? 【发布时间】:2016-01-20 10:30:01 【问题描述】:

我有一段代码,其中我看到了__cxa_ 前缀。例如,以下摘录包含它:

    std::unique_ptr<char, void (*)(void *)> own(
#ifndef _MSC_VER
            abi::__cxa_demangle(typeid(TR).name(), nullptr,
                                nullptr, nullptr),
#else
            nullptr,
#endif
            std::free
    );

我很乐意对cxa 的含义进行一些解释。

【问题讨论】:

我猜“x”代表“扩展”,“a”代表“abi”。然后指的是英特尔的 ABI,如果我没记错的话。对“c”一无所知。 【参考方案1】:

只是函数名,但可能是CXxAbi

【讨论】:

以上是关于“__cxa_demangle”中的“cxa”前缀是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

C++封装一个易用的打印backtrace信息的函数

MSVC 中的拆解

解组成员函数名称中的返回类型

C++学习(四零五)编译选项use-cxa-atexit no-use-cxa-atexit

__cxa_pure_virtual 的目的是啥?

错误 undefined reference to __cxa_guard_acquire/release