Вит*_*аев 8 c++ libstdc++ libc++
我有一些问题。
1) 什么是libc++和libstdc++?
2)它们之间有什么区别?
3)它们可以互换吗?
4)这是编译器应该实现的东西吗?
5) 我什么时候应该使用一个或另一个?
Tom*_*ton 11
libstdc++ 是 GNU c++ 标准库实现。
libc++ 是 LLVM/clang c++ 标准库实现。
即使使用 clang 编译,也经常使用 libstdc++ (gnu)(在 Linux 上)。
libc++ (clang) 存在的一个主要原因是 libstdc++ (gnu) 是 GPL,因此 Apple 无法发布它,因此您可以将 libc++ 视为非 GPL libstdc++。
1) 什么是 libc++ 和 libstdc++ ?
它们是C++ 标准库的实现。
2)它们之间有什么区别?
它们是完全不同的实现。
3)它们可以互换吗?
是的,您应该可以互换使用它们。(但是,您不能在同一个程序中轻松地同时使用两者。)
5) 我什么时候应该使用一个或另一个?
你不应该担心这个。您的代码应该适用于任何标准库实现。