2014-10-10 126 views
1

最近我读过一篇文章,说STL是在标准化C++之前由Alexander Stepanov开发的,而且当时是一个库,就像现在的boost一样。我的脑海里出现了很多问题。STL和stdlib之间有什么关系

  1. 我们可以下载和使用STL同样喜欢boost时下
  2. 没有纳入到C++标准STL?如果
    • 什么是STL,不包括对stdlib的事情,
    • 什么是不能从STL的东西,但在stdlib
  3. 没有STL℃后消失++规范
  4. 我们可以说“没有STL,但只在C++ Standard Library
+2

#4。 STL这个术语已经没有了正式的含义了。这是一个历史的术语,指的是对C++标准库有很大影响的库。 – Adam 2014-10-10 04:55:34

+0

stdlib是C标准库。在C++中,头文件位于cstdlib中。 – user2672165 2014-10-10 04:59:33

+2

[This](http://stackoverflow.com/a/5205571/1410711)!!!!!! – Recker 2014-10-10 05:00:44

回答

1
  1. 是 - 你可以从SGI here得到它,但只有上帝知道,如果它需要汇总一份最新的编译器,或者最近保持版本,称为STLport here

  2. 有差异,例如SGI STL有bit_vector ,不过无论是在大多数STL元素的版本之前还是之后都是标准化的,我都不记得了;而标准库包含的整个iostreams工具从来不是STL的一部分,显然不是STL的一部分,尽管在标准的可用编译器提供的实现变得越来越可靠之后,没有理由选择非标准版本为新的发展;一些旧的代码无疑仍然使用STL(和许多其他类似的非标准库)

  3. ,就像你可以说:“有一个在C++中没有提升” ......这不是标准

部分

“但只有C++中的搁浅库” - 那是故意的吗? ;-)

+0

GCC的libstdC++显着地使用了SGI的STL。它会很奇怪,不会*编译。 – Rapptz 2014-10-10 05:11:16

+0

@Rapptz:来自GCC常见问题解答:“来自SGI的STL 3.3版本是STL代码库的最终合并,libstdC++中的代码包含许多修复和更改,SGI代码不再处于积极的开发阶段。没有未来的合并会发生。“最后的SGI STL发布是在14年前发布的。对于希望STL实现现在可以使用的人来说,STLport可能是一个更好的选择,尽管它也是一个已停用的项目,截至4年前。 – 2014-10-10 05:19:21

+0

我仍然看不到今天如何编写用标准C++编写的代码(SGI STL的最新版本是1998年后的版本,并影响了模板行为等)。 – Rapptz 2014-10-10 05:22:15

相关问题