如果这是一个幼稚的问题,我很抱歉,但有些事情我无法理解。
为什么 C++ 标准库会捆绑不同的编译器实现(g++
的 libstdc++
和 clang
的 libc++
) 而不是与(类 UNIX)操作系统捆绑在一起,就像 C 标准库那样?考虑到它是 C 库的超集,为什么它不与 C 库一起维护?
最佳答案
根本原因是没有标准的 C++ ABI —— 每个编译器都倾向于有自己的 ABI,它与其他编译器不同且不兼容。另一方面,大多数操作系统定义了一个标准 C ABI,他们使用并为其提供标准 C 库,并且该操作系统的所有 C 编译器都支持该 ABI。
关于c++ - 为什么 C++ 标准库与编译器而不是操作系统捆绑在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270624/