std::命名空间的源代码

Source code of std:: namespace

我想使用 std::string 命名空间 + 成员,但我不希望我的文件的大小增加 #include <string> 文件的大小。

有没有什么地方可以找到 std:: 命名空间的源代码,这样我就可以提取字符串成员并将其放入我的源代码中,这样我的二进制文件大小就不会增加?

请给我一些建议,谢谢!

如果在 Linux 上使用 GCC(通过 g++),它是免费软件并且可以使用标准库的源代码。所以你可以研究它的 <string> header(其中一些可能会使用像内置函数或属性这样的编译器魔法)。

请注意,如果您 #include <string> 并要求编译器进行优化(使用 -Os 来优化大小,或使用 -O2 来优化速度),很可能不需要的函数不会进来。最后,通常 libstdc++ 是动态链接的(作为共享 object)所以不会在每个程序中消耗 space(但在多个进程之间共享)