【问题标题】:Open source STL implementations with C++11 support支持 C++11 的开源 STL 实现
【发布时间】:2013-12-04 04:06:22
【问题描述】:

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

我将开始研究 GNU C++ 实现,看看它与 GCC 工具链作为替代方案的关联程度,并将返回结果。但是,如果有人在这里有任何前期知识,那就太好了。

对此的替代方案是实现各种关键的 C++11 STL 特性,如新的智能指针类型和 std::threads。最坏的情况下,我可能可以从 boost 中提取智能指针。就 pthread 或 Windows 线程而言,是否有任何 std::threads 实现?

谢谢

【问题讨论】:

  • 无论好坏,推荐风格的问题都与 SO 无关。
  • 这个规则很荒谬。这个问题已被关闭,因为据称它“倾向于吸引固执己见的答案和垃圾邮件”。问题是某事是否存在,答案可能有多固执?马蒂厄对问题最后一部分的伪回答有多固执己见?我知道“请向我推荐一个好的 C++ Web 框架”之类的问题会吸引固执己见的答案。这不是那样的。
  • @PlasmaHH 什么。我希望这不是关于“我是房间里唯一一个坚持不理解当有人使用'STL'时其他人似乎理解的人,即使我有能力理解它但我太固执了,不能再假装我不明白”?
  • 在我看来,“什么是最好的 $X?”类型的问题之间存在很大差异。 (这可能会吸引固执己见的答案/争吵和垃圾邮件)和这种类型的问题,即“是否存在任何 $X?”。最后一种完全有可能给出明确的答案。
  • 这个问题也是stackoverflow.com/q/18923293/332733的重复问题

标签: c++ c++11 stl stlport


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    你可以看看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
    猜你喜欢
    • 1970-01-01
    • 2017-09-11
    • 2012-11-29
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 2017-02-24
    相关资源
    最近更新 更多