14

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

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

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

谢谢

4

2 回答 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获得合适的替换实现。

于 2013-11-20T21:36:47.150 回答
2

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

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

于 2014-07-09T23:09:27.377 回答