原文出处:http://pluralsight.com/blogs/hsutter/archive/2006/05/03/22936.aspx
国际标准化组织C++委员会会议于2006年4月2日至7日在柏林召开。我将本会形成的C++0x[译注1]相关决议给大家介绍一下。
如何获取历次会议纪要
一般来说,每次的会议纪要可在会议结束2到3周后出台。获得这些纪要最简单的办法,就是到Google上按年度搜索(格式:“wg21 minutes ”)[译注2]。例如“wg21 2006 minutes”,搜索出来的第一条结果是:
2006年4月3日到7日召开的J16第42次会议暨WG21第37次会议纪要
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2006/n1993.html
另外我补一句,按编号搜索,也是个好办法,比如Google“wg21 ”。我常常这样干,因为这比我直接在本地硬盘里查找还要快,尽管我知道文件存放位置。
表决列入C++0x工作草案的工作
本次会议上,主要有五个方面的工作获批列入草案。我说这句话是两个方面的意思:在正式标准完成并公布前,有些问题还将继续细化修订;但是,表决通过的各项工作也的的确确是可切实开展的——我们已经反复讨论,在不少方面取得一致,并形成了书面标准,而且,委员会已全票表决通过将它们写入正式工作报告。
1、C++库扩展技术报告(Library Technical Report)
C++扩展库方面,唯一未进行表决的是重任在身的数学科学工作者格外关注的专业数学函数部分。终版技术报告还未发布,但现在可以从C++国际标准委员会的站点下载准终版:N1836, Draft Technical Report on C++ Library Extensions。
2、类型自动推导(Auto type deduction)
这个特性支持类似如下的声明:
auto x = 3.1415926535;
auto i = container.begin();
初始化时,类型可被自动推导,而不必人工明确声明。即x被赋予double类型,i则是map > >::const_iterator 或者其他任何符合实际运算结果的类型。这部分的报告参见:N1984, Deducing the type of variable from its initializer expression (revision 4)。
3、代理构造器(Delegating constructors)[译注3]
这个提案是我和Francis Glassborow一起完成的,同时适用于WG21和C++/CLI。首版的C++/CLI并不支持此特性,如果在下个版本中增加进去,将遵循WG21已经采用的方案,并在此基础上加入一些为将来考虑的东西。报告见:N1986, Delegating Constructors (revision 3)。
4、右尖括号问题(Right angle brackets)
这个修订针对的是C++中一个很小但非常让人讨厌和为难的问题。修订采用了和C++/CLI相同的标准。修订完成后,形如
>>>>
这样的表达[译注4]将赢得合法地位,而不再需要象过去那样,必须在右尖括号间加入空格(如:
> > > >
——简直和密西西比河东北那些18到24岁青年的蛀牙一样难看)。详细情况可参看报告:N1757, Right Angle Brackets (Revision 2)。
5、外部模板(Extern template)
详见报告:N1987, Adding 'extern template' (version 2)。
谢谢各位!2006年10月美国俄勒岗波特兰会议后,我会带给大家更多好消息。
译注1
0x表示C++标准的版本,如C++98。目前的一个计划是C++09,即需要在2008年完成这个标准以便被ISO成员国批准。为了按时完成此项工作,委员会已经停止审查新的提案并将精力集中于目前已经被讨论的那些提案上。
译注2
ANSI:美国国家标准化组织
ISO:国际标准化组织
ANSI J11:ANSI C委员会
ANSI J16:ANSI C++委员会
ISO WG14:ISO C委员会,具体指JTC1/SC22/WG14 C语言技术工作小组,通常简写为WG14。
ISO WG21:ISO C++委员会,具体指JTC1/SC22/WG21 C++技术工作小组,通常简写成WG21。
WG21通常与ANSI J16在同一个地方召开会议,时间也彼此衔接,目的是促进彼此沟通交流。
译注3
在一些语言如Java、Object Pascal等中,允许类的多个构造器相互调用。C++目前不支持此特性。
译注4
因为“>>”已经被使用作为右移运算符,以前的语法分析器不能智能辨别。