不同编译器中的C ++标准库实现

时间:2013-05-27 13:26:33

标签: c++ stl c++-standard-library

我想知道在不同的C ++编译器中使用了哪些C ++标准库。我试图搜索它,但找不到一个完整的列表。

我知道Dinkumware的实现由msvc和icc使用,libstdc ++由gcc使用,libc ++用于clang。但是Digital Mars C ++,Embarcadero的bcc,还是IBM的xlC ++呢?

1 个答案:

答案 0 :(得分:8)

候选名单:

  • GCC:使用自己的libstdc ++。
  • MSVC:使用自己的msvcrp,它是从Dinkumware购买的,然后被肢解以解决MSVC糟糕的C ++语言支持(所以它不再是真正的Dinkumware)。
  • Clang:如果传递-stdlib=libc++选项,则使用LLVM的libc ++。它也可以使用GCC的libstdc ++以及MSVC的库(它在所有情况下都会生成二进制兼容代码)。
  • ICC:在Linux上使用GCC libstdc ++,在Windows上使用MSVC的库。它还试图在这些平台上模仿两个编译器。

请注意,此处未涉及其他编译器和(独立)C ++标准库实现。