ISO C ++标准
当提到 C++时,通常会引用标准。但究竟是什么标准呢?
C++历史悠久。作为 Bjarne Stroustrup 在贝尔实验室内开展的一个小项目,到 90 年代初,它已经变得非常受欢迎。多家公司正在创建 C++编译器,以便用户可以在各种计算机上运行他们的 C++编译器。但为了促进这一点,所有这些竞争编译器应该共享该语言的单一定义。
那时,C 语言已成功标准化。这意味着编写了该语言的正式描述。这是提交给美国国家标准协会(ANSI)的,该协会开放了该文件供审查,随后于 1989 年发布。一年后,国际标准组织(因为它将使用不同语言的不同首字母缩略词,他们选择了一种形式,ISO,源自希腊语 isos,意思相同。)采用美国标准作为国际标准。
对于 C++,从一开始就清楚地表明存在国际利益。ISO 内的工作组已经启动(在子委员会 22 中称为 WG21)。这个工作组在 1995 年左右起草了第一个标准。但正如我们的程序员所知,计划交付比最后一分钟的功能更危险,而 C++也是如此。1995 年,一个名为 STL 的酷炫新库浮出水面,在 WG21 工作的人们决定在 C++草案标准中增加一个精简版本。当然,这导致错过最后期限,仅 3 年后文件就成了最终版本。ISO 是一个非常正式的组织,因此 C++标准被命名为 ISO / IEC 14882 的市场名称。由于标准可以更新,这个确切的版本被称为 14882:1998。
事实上,有人要求更新标准。标准是一个非常厚的文档,旨在准确描述 C++编译器应该如何工作。即使是轻微的模糊性也值得修复,因此到 2003 年更新发布为 14882:2003。但是,这并没有为 C++添加任何功能; 新功能计划在第二次更新。
非正式地说,第二次更新被称为 C++ 0x,因为不知道这是否需要到 2008 年或 2009 年。嗯 - 该版本也有一点延迟,这就是它成为 14882:2011 的原因。
幸运的是,WG21 决定不让这种情况再次发生。C++ 11 很受欢迎,让人们重新对 C++感兴趣。因此,为了保持这种势头,第三次更新从计划到出版 3 年,到 14882:2014。
这项工作也没有止步于此。已经提出了 C++ 17 标准,并且已经开始了 C++ 20 的工作。