我应该阅读哪个C++ ISO标准的PDF版本?

9
有时候,我想自己查找C++标准的答案。阅读标准可能有助于我了解所提出的语言原则的概述。
通过搜索互联网,我被淹没在C++论坛和辅助网站中。它们提供各种PDF文件供阅读。
我不知道应该采用哪个PDF文件和/或哪个版本。
我发现了几个网站: 我想知道是否有一个单一的站点发布标准。解决问题时应该参考哪个版本?有些人说是C++98,而其他人则说是C++11,甚至是最新的工作草案。(许多草案使我感到困惑)。

编辑
我从The Standard中找到了一些有用的信息,它写道:

除了最终的标准/报告之外,所有C++委员会文件都是免费公开的,包括所有工作草案,其中许多与已发布的标准非常接近。2012年1月的工作草案包含了C++11标准和一些小的编辑更改。

2012年1月的工作草案是N3337
希望这能帮到你们。


编辑
Wiki C++11中可以看到,它写道:

与发布的C++11标准最相似的工作草案是N3337,日期为2012年1月12日;它只有来自C++11标准的编辑更正。


你使用的编译器是什么? - stark
2
@stark- 这与这里有什么关系? - templatetypedef
@stark 我同时使用VC++和G++。C++标准取决于编译器,尽管有时不同的编译器会有不同的反应。然而,我认为基本原则是相似的。 - Zachary
@templatetypedef 你觉得他使用的是C++98还是C++11编译器不相关吗? - stark
1
@stark- 那很有道理。我没有意识到你在谈论编译器支持哪个C++版本。感谢澄清! - templatetypedef
3个回答

20

2018年更新:C ++标准在GitHub上进行维护。您可以在此处找到旧的工作草案档案,时间跨度为几年。


官方的C++11标准INCITS/ISO/IEC 14882:2011可在ansi.org以30美元的价格购买。您可以通过搜索例如14882:2003并查找PDF来查找更早的标准版本。我不确定下载它们是否是“合法的”,因此如果您这样做,请确保感到内疚。

在标准发布之前,委员会会使用工作草案文档维护所有修订。在成为标准之前,该工作草案最终被投票通过。发布为标准之前,只进行少量编辑修改。

委员会以一个编号系列的文档形式发布工作草案及其他文件,并公开提供,但标准的最终批准草案除外。国际标准化组织的规定使得最后修订版本被“保密”,以便人们购买标准,并使用这些资金来资助实际的国际标准化组织工作。

不想支付标准费用的人会使用工作草案的最终公开副本作为参考,因为通常情况下它与标准文档基本相同,除了我之前提到的一些小的编辑更改。对于C++11,最后一份草案是N3242 - 编程语言C++标准的工作草案。在C++11之后的第一份工作草案N3337可能更准确地反映出最终标准(我懒得比较)。

C++1y的当前工作草案是N3690 - 编程语言C++。如果您真的很专业,可以跟踪编辑器在Github上的当前草案版本库。


1
我下载了N3690的PDF文件。它被称为委员会草案(CD)工作草案委员会草案之间有什么区别吗? - Zachary
2
C++11的最新工作草案是n3291,但目前无法访问(可能太接近最终ISO版本)。他们建议使用n3337作为C++11参考。 - Zachary

2
官方的C++11 ISO标准是ISO/IEC 14882:2011,而C++03 的官方 ISO 标准是 ISO/IEC 14882:2003。要获得这些标准的副本通常需要付费(就我所知这是唯一合法的方式),这些都是官方文件。
C++98 是一种旧版本的语言,在2003年被 C++03 取代,该版本主要是修复了一些小错误和调整了文档。C++11是最新的C++标准,于2011年发布。编译器的支持仍在进行中。你提到的草案是定期发布的标准草案,可能与最终发行版不同。工作论文大多是由ISO小组考虑的文档建议,但它们并非正式文件。
希望这可以帮助你!

1

好的,你可以购买来自ISO的官方标准(如你所链接的)。最新的工作草案对于我的目的足够了(我没有实现编译器、链接器、库或词法分析器)。

如果你正在进行严肃的专业语言工作,那么值得付费。如果你想要了解特定的技术细节,可以使用其中一个草案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接