作者在 2009-06-01 18:11:39 发布以下内容
C++新标准即将出台
日前,C++ Connections Conference for C++09 Preparation在位于阿拉伯联合酋长国首都迪拜的芝加哥海滩宾馆顺利闭幕。
此次会议讨论通过了一些全新的将加入C++09标准的特性,并且决定将一些本来预备在2009年才正式加入标准的内容提前作为C++标准的一部分提供给广大C++程序员。包括之前众所周知的核心改进Rvalue References和Type Concepts,以及初始化时候的类型自动推演、Delegating Constructors、NULL Pointer等特性都已经加入当前C++标准。STL原有相当部分都经过修改甚至重写以达到更优的稳定性和效率,并且在保留原有接口的前提下增加了相当数量的新接口,对此会议主持者之一Thomas Tung表示,虽然这增加了C++的学习难度,但是由此提供的极为丰富的新功能实在是值得掌握,况且函数的很多默认参数也给C++的初级用户提供了便利。而TR1中几乎所有成熟的内容都被提前加入了STL中,包括完善的正则表达式库、智能指针、封装好的数组和多维数组、高精度运算、跨语言支持等等内容。一些数据结构也新做了相当实用的封装,包括线段树、用于不相交集合的并查集、斐波那契堆、检索树、双端优先队列等等。图部分,丰富的算法使之成为一大亮点,包括拓扑排序问题以及各种生成树问题、最短路问题和网络流问题等都提供了高效灵活的解决方案。原本作为map等实现方案的红黑树也在增加接口后直接提供给程序员使用。而另外一大批准备加入的泛型算法则将等到2009年再发布,这将可能使标准库中的泛型算法个数激增到500以上。
在新标准出台后,g++方面表示会在近期内放出符合标准的编译器。而其他编译器厂商都表示近期不会做出大的更新。微软表示会在VS2009发布时对这些新内容进行支持。
对于如此巨大的更新,C++之父Bjarne Stroustrup却表示这只是C++09的冰山一角。一些更为关键的改进将在09年发布。其中包括提供更高效率和更灵活应用的Strength Inheritance技术,使工程开发更轻松的Workgroup Encapsulation机制,帮助减少错误的Early-Warning Debugging方法等等。这些内容加入后,C++将再次脱胎换骨,甚至成为一门全新的语言。
“我们将迎来的是一场全新的革命,跨度就像从航空到航天那么大。”Bjarne Stroustrup自豪地说。而由于改变过大甚至导致大量C++程序员需要重新培训,Bjarne说:“相信我,这是值得的。”
面对优势开始变得过于明显的C++,ACM/ICPC(ACM国际大学生程序设计竞赛)的负责人Dany Terra表示将考虑增加比赛难度或者对使用C++的选手进行技术限制以保证公平和对选手水平的充分考验。但是其他比赛的举办方,如Topcoder,都表示对C++的日益强大表示欢迎。
Primer C++、Thinking in C++、Effective系列等著名C++书籍的作者都表示已经开始为09年新标准的发布进行准备,会争取在第一时间出版新版著作。