确定C++中包含的符号的来源

Gre*_*reg 5 c++ include visual-studio

我目前正在开发一个禁止包含C++标准库的项目.我们使用的其中一个编译文件列出了以下符号: _Xran__Q2_3std12_String_baseCFv

我相信这与标准库字符串有关.我这么想是不正确的?如果没有,是否有人知道一种有效的方法来追踪这个符号的包含点?粗略搜索代码库并没有显示任何明显的东西.

use*_*136 2

这似乎不是 VC 破坏,它总是以问号开头。

然而,它确实适合 G++ 修饰方案,正如运行所建议的那样

$ c++filt  --format=gnu "_Xran__Q2_3std12_String_baseCFv"
std::_String_base::_Xran( const(void))
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这_Xran似乎是 VC 实现的一部分std::string

无论如何,您正在寻找的标头可能是#include <string>.

编辑:作为 c++filt 输出的结果 - 您确定它是在 VC++ 中编译的吗?