支持C++11的开源STL实现

Open source STL implementations with C++11 support

本文关键字:STL 实现 开源 C++11 支持      更新时间:2023-10-16

简而言之,我正在寻找STLPort的替代方案。STLPort已经有一段时间没有更新了(自2008年以来?),并且缺少对C++11的支持。有人知道其他选择吗?我需要使用各种工具链,针对各种体系结构和各种目标操作系统进行编译。

我将开始研究GNU C++实现,看看它与GCC工具链作为一种替代方案的联系,并将发布结果。但如果有人在这里有任何前沿知识,那就太好了。

替代方案是实现各种关键的C++11 STL功能,如新的智能指针类型和std::线程。最糟糕的情况是,我可能会从boost中提取智能指针。在pthreads或Windows线程方面,有没有std::线程的实现?

感谢

您可以查看libc++。它是clang的标准C++库。我还没有尝试过用不同的编译器或在不同的平台上编译它。虽然肯定存在编译器依赖性,例如在<type_traits>和语言支持库的头文件(例如<exception><type_info>等)中,但我可以想象大多数代码都会使用其他编译器进行编译。

您已经提到了libstdc++,它似乎可以与gcc以外的其他编译器配合使用,至少在Linux和MacOS上是这样:clang过去在MacOS上使用libstdc++。然而,我现在不知道用其他编译器编译libstdc++有多高兴。

对于特定的类,例如std::shared_ptr<T>std::thread类组,您可以从Boost获得合适的替换实现。

除了gcc和clang附带的实现之外,还有一个第三方开源uSTL(支持c++11)。据其网站介绍,此举旨在减少"模板膨胀"的一些开销。但是,它不实现wchar字符串。它们也有非标准的内存分配。

他们的网站上有一些例子展示了如何使用它来代替gcc的stl。