C++ 标准有多少个版本?

How many versions of the C++ Standards are there?

提问人:tem 提问时间:10/15/2010 最后编辑:Nicol Bolastem 更新时间:1/13/2021 访问量:14300

问:

在 C 语言中,有 C89、C99 和 C11;C++呢?自问世以来有没有升级?

C 标准 C++-FAQ

评论

0赞 MSalters 10/15/2010
实际上,C 语言的版本不止于此。例如,ISO C90 非常非常接近 ANSI C89,还有“C94”——不是一个完整的标准,而是一个规范性附录。
0赞 Steve Jessop 10/15/2010
@MSalters:出于兴趣,C89和C90有什么区别?我从来没有直接从出版商那里得到它们来比较。我以为它基本上只是一个新的介绍,也许是页面重新编号 - 有什么技术差异吗?
0赞 MSalters 10/15/2010
@Steve Jessop:我也不知道技术上的差异;如果您因为重新编号而引用 Chapter&Verse,这只是一个小心的问题。
0赞 Johannes Schaub - litb 10/16/2010
ANSI 和 ISO C 之间的差异都基于非规范内容和部分编号 iirc。此外,还有 C99 的各种技术勘误。
1赞 Keith Thompson 12/11/2011
C89由ANSI发行。C90 由 ISO 发布,描述的语言完全相同。根据 ISO 规则,他们增加了一些前置内容并重新编号了各部分。C89 第 3 节和第 4 节(语言和图书馆)分别是 C90 第 6 节和第 7 节。ISO C99 使用与 ISO C90 相同的顶级截面编号。ANSI正式采用ISO C90标准发布后;ANSI C89 在这一点上已经过时了。ANSI 也采用了 ISO C99 标准,正式淘汰了 C90。

答:

27赞 Prasoon Saurav 10/15/2010 #1
  • C++98(ISO/IEC 14882:1998)是第一版。

  • C++03 (ISO/IEC 14882:2003) 是第二版,通常被认为是错误修复,但它有许多变化

  • C++11 是第三版。

  • C++14 是第四版。

  • C++17 是最新版本(截至 2017 年)。

您可以下载标准和草案的 PDF。

评论

3赞 Armen Tsirunyan 10/15/2010
C++03 与 C++98 几乎相同,它不是一种新标准,而是前一个 Service Pack :)
3赞 Prasoon Saurav 10/15/2010
@Armen : 是的,C++03 中的大多数内容都类似于 C++98。但是,C++03 和 98 之间存在一些差异,例如:值初始化(在 C++03 中)。
1赞 David Rodríguez - dribeas 10/15/2010
如果您想将链接添加到答案:C++03C++0x FCD
4赞 Prasoon Saurav 10/15/2010
@tem : 是的!!下表列出了 C+ 0x 功能及其在常用编译器中的支持。
1赞 Johannes Schaub - litb 10/16/2010
如果你在 C++ 行中包含 C++ 03(这只是一个技术勘误),你必须在 C 行中包括 C07、C05 以及 C99(以及我不知道的其他各种)。