什么是C++11/C++0x

什么是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对标准完成的预期更加现实。因为他们使用的代号是C1x,这样新的C标准完成的最后期限将是2019年。事实上WG14并没用那么长时间,他们最终在2011年通过了提案,也就是C11标准。

从表中可以看到C++从诞生到最新通过的C++11标准的编年史。
什么是C++11/C++0x

注意 语言标准的发布通常有两种 —规范的(Normative)及不规范的(Non-normative)。前者表示内容通过了批准(ratified),因此是正式的标准,而后者则不是。不过不规范的发布通常是有积极意义的,比方说TR1,它就是不规范的标准,但是后来很多TR1的内容都成为了C++11标准的一部分。

下图比较了两个语言标准委员会(WG21,WG14)制定新标准的工作进程,其中一些重要时间点都标注了出来。
什么是C++11/C++0x

赞(0)

评论 抢沙发

评论前必须登录!