- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新标准的诞生.PDF
第 1 章
新标准的诞生
从最初的代号C++0x 到最终的名称C++11 ,C++ 的第二个真正意义上的标准姗姗来迟。
可以想象,这个迟来的标准必定遭遇了许多的困难,而C++ 标准委员会应对这些困难的种种
策略,则构成新的C++ 语言基因,我们可以从新的C++11 标准中逐一体会。而客观上,这
些基因也决定了C++11 新特性的应用范畴。在本章中,我们会从设计思维和应用范畴两个维
度对所有的C++11 新特性进行分类,并依据这种分类对一些特性进行简单的介绍,从而一览
C++11 的全景。
1.1 曙光:C++11 标准的诞生
1.1.1 C++11/C++0x (以及C11/C1x )—新标准诞生
2011 年 11 月,在印第安纳州布卢明顿市,“八月印第安纳大学会议”(August Indiana
University Meeting )缓缓落下帷幕。这次会议的结束,意味着长久以来以C++0x 为代号的
C++11 标准终于被C++ 标准委员会批准通过。至此,C++ 新标准尘埃落定。从C++98 标准
通过的时间开始计算,C++ 标准委员会,即WG21 ,已经为新标准工作了11 年多的时间。对
于一个编程语言标准而言,11 年显然是个非常长的时间。其间我们目睹了面向对象编程的盛
极,也见证了泛型编程的风起云涌,还见证了C++ 后各种新的流行编程语言的诞生。不过在
新世纪第二个 10 年的伊始,C++ 的标准终于二次来袭。
事实上,在2003 年WG21 曾经提交了一份技术勘误表(Technical Corrigendum ,简称
TC1 )。这次修订使得C++03 这个名字已经取代了C++98 成为C++11 之前的最新C++ 标准
名称。不过由于TC1 主要是对C++98 标准中的漏洞进行修复,核心语言规则部分则没有改
动,因此,人们还是习惯地把两个标准合称为C++98/03 标准。
注意 在本书中,但凡是C++98 和C++03 标准没有差异时,我们都会沿用C++98/03 这
样的俗称,或者直接简写为C++98 。如果涉及TC1 中所提出的微小区别,我们会
使用C++98 和C++03 来分别指代两种C++ 标准。
C++11 是一种新语言的开端。虽然设计C++11 的目的是为了要取代C++98/03 ,不过
相比于C++03 标准,C++11 则带来了数量可观的变化,这包括了约 140 个新特性,以及对
2 第 1 章
C++03 标准中约600 个缺陷的修正。因此,从这个角度看来C++11 更像是从C++98/03 中孕
育出的一种新语言。正如当年C++98/03 为C++ 引入了如异常处理、模板等许多让人耳目一
新的新特性一样,C++11 也通过大量新特性的引入,让C++ 的面貌焕然一新。这些全新的特
性以及相应的全新的概念,都是我们要在本书中详细描述的。
1.1.2 什么是C++11/C++0x
C++0x 是WG21 计划取代C++98/03 的新标准代号。这个代号还是在2003 年的时候取
的。当时委员会乐观地估计,新标准会在21 世纪的第一个 10 年内完成。从当时看毕竟还
有6 年的时间,确实无论如何也该好了。不过2010 新年钟声敲响的时候,WG21 内部却还
在为一些诸如哪些特性该放弃,哪些特性该被削减的议题而争论。于是所有人只好接受这
个令人沮丧的事实:新标准没能准时发布。好在委员会成员保持着乐观的情绪,还常常相
互开玩笑说,x 不是一个0 到9 的十进制数,而应该是一个十六进制数,我们还可以有A 、
B 、C 、D 、E 、F 。虽然这是个玩笑,但也有点认真的意思,如果需要,WG21 会再使用“额
外”的6 年,在2015 年之前完成标准。不过众所周知的,WG21 “只”再花了两年时间就
完成了C++11 标准。
注意 C 语言标准委员会(C committee )WG14 也几乎在同时开始致力于取代C99 标准。
不过相比于WG21 ,WG14 对标准完成的预期更加现实。因为他们使用的代号是
文档评论(0)