简而言之,我正在寻找STLPort的替代品。 STLPort有一段时间没有更新(自2008年以来?),并且缺乏C ++ 11支持。有谁知道任何替代品?我需要使用各种工具链进行编译,适用于各种体系结构和各种目标操作系统。
我将开始研究GNU C ++实现,看看它与GCC工具链的关系如何作为替代,并将回复结果。但是,如果有人在这里有任何前期知识,那将是伟大的。
替代方案是实现各种关键的C ++ 11 STL功能,如新的智能指针类型和std :: threads。最糟糕的情况我可以从boost中提取智能指针。在pthreads或Windows线程方面是否存在std :: threads的任何实现?
由于
答案 0 :(得分: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获得合适的替代实施。
答案 1 :(得分:2)
除了gcc和clang附带的实现之外,还有第三方开源uSTL(支持c++11
)。根据其网站,它旨在减少“模板膨胀”的一些开销。但是,它没有实现wchar
个字符串。它们还具有非标准内存分配。
他们的网站上有一些例子说明如何使用它而不是gcc的stl。