作为一个C++初级程序员,我注意到无论您使用什么IDE/编译器,您都不需要显式地包含stl (标准模板库)。这是否意味着我可以依赖stl“始终可用”?
例如,如果我想使用std::cout,我只包含stl的iostream部分:
#include <iostream>...and不需要首先执行类似#include <std>的操作就可以继续这样的操作:
std::cout << "Hello world!" << std::endl;此外:我可以依赖于stl的一致性吗?stl的每个函数/方法都有相同的行为吗?或者C++发行版、操作系统或编译器之间是否有任何更改?
我之所以这样问,是因为当你不知道某些陷阱的时候,其他库有时真的会很痛苦。例如,特征(用于线性代数的东西)对我来说真的很难开始,我注意到一些版本之间的变化行为。
发布于 2017-03-20 23:06:09
几乎所有的C++编译器都将附带标准C++库。这些被称为“托管实现”。库定义得很好,虽然它确实在增长,但很少会以破坏旧代码的方式进行更改。标准委员会的一个主要目标是保持向后兼容性。
该标准还允许“独立实现”,它附带了一个非常精简的库,完全在标头中实现。在为嵌入式系统开发代码时,您可能会遇到这种情况,特别是当该系统没有底层操作系统时。这些是罕见的,但它们确实存在。(第7.6.1.13节讨论了独立实现。)
https://stackoverflow.com/questions/42914351
复制相似问题