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

14

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

我将开始调查GNU C++实现,并查看它与GCC工具链的联系作为替代方案,并会发布结果。但如果有人在这方面有任何预先的知识,那就太好了。

这方面的替代方案包括实现各种关键的C++11 STL特性,例如新的智能指针类型和std::threads。最坏的情况可能是我可以从boost中提取智能指针。是否有基于pthread或Windows线程的std::threads的实现?

谢谢


3
无论好坏,推荐类型的问题在SO上都是不适合讨论的。 - Marcelo Cantos
8
这个规则很荒谬。据说这个问题“倾向于吸引持有观点的回答和垃圾邮件”,因此被关闭了。问题是某物是否存在,回答会有多少观点?Matthieu在问题的最后部分给出的伪答案有多少观点?我明白像“请推荐一个适用于C ++的好Web框架”这样的问题会吸引带有观点的答案。但这不是那种情况。 - Steve Jessop
4
@PlasmaHH,什么意思?我希望这不是又一篇毫无意义的抱怨文章,内容大致是“当有人使用'STL'时,我是房间里唯一一个坚持不理解其他人似乎都懂的人。虽然我有能力理解它,但我太固执,假装自己不理解它。” - R. Martinho Fernandes
5
我认为,“什么是最好的X?”这种类型的问题(可能会引发争论和垃圾邮件)与“是否存在任何X?”这种类型的问题有很大的区别。后者可以明确回答,而前者不能。 - Magnus Hoff
1
@PlasmaHH:这将是一个好的(在我看来是不好的,但很合乎逻辑)假设关闭原因“提到STL,因为这样会吸引意见”的动机。这与更一般的关闭原因“要求推荐,因为这样会吸引意见”无关。因此,虽然我理解你的观点,即某个地方可能有人会在回答这个问题时提供一个带有观点的长篇大论,但我认为这并不是推荐问题对SO整体质量的真正问题 :-) - Steve Jessop
显示剩余5条评论
2个回答

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

您已经提到过libstdc++,它似乎可以与不同于gcc的其他编译器很好地配合使用,至少在Linux和MacOS上是如此:clang曾在MacOS上使用libstdc++。但是,我不知道libstdc++在与其他编译器一起编译时的表现如何。

对于特定的类,例如std::shared_ptr<T>std::thread系列的类,您可以从Boost中获得适当的替代实现。


Boost 还提供了一些扩展的标准容器,详见 Boost.Containers。 - Klaim

2
除了gcc和clang附带的实现之外,还有第三方开源uSTL(支持c++11)。根据其网站,它旨在减少“模板膨胀”中的一些开销。但是,它不实现wchar字符串。它们还具有非标准内存分配。
他们的网站上有示例,显示如何使用它来代替gcc的stl。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接