昨天,
C++标准委员会网站发布了最近一次会议的
papers。当我兴致勃勃地翻阅
State of C++ Evolution时,当即发现一个坏消息:gc可能无法赶在09年之前进入标准!
gc被归入了:
Not quite ready for C++0x timetable, but actively pursued
Papers in this category have been in development and reviewed several times over the evolution of C++0x. However, although there is a strong interest the feature has not quite stabilised fast enough to meet the 2009 target deadline.
Work will proceed outside the main committee meetings, and will be picked up with a view to an early adoption.
N1833 N1943 N2128 N2129 N2286 N2287 N2310 Transparent Garbage Collection for C++ H. Boehm, M. Spertus
N2261 Optimization-robust finalization H. J. Boehm, M. Spertus
最后一句话多少给人些安慰。
在文档
Minutes of WG21 Meeting中,可以看到,当时他们将gc列为inessential,并且表决通过,暂不讨论这些内容:
Nelson observed that the discussion was preoccupied with the question of which proposals are essential. He requested some discussion to identify those proposals that are inessential, noting that GC, Lambdas, and thread pools had not been identified in the discussion as essential.
Stroustrup indicated that he would be willing to leave out thread pools and GC to complete the standard in 2009. He declined to make the same comment about Lambdas until the EWG had time to review the latest draft of that proposal at this meeting.
Hinnant asked about whether threadpools, in the context of this discussion, included futures. Sutter explained that he believes that they mean everything beyond a basic threading API.
Austern speculated that a simple threadpool that is not associated with futures could pass quickly. Stroustrup agreed.
Discussion ensued.
Sutter asked how many members in attendance were willing to stop talking about GC, threadpools, read/write locks, message queues, and futures for the sake of meeting the schedule. Dos Reis replied that France would like to have a form of programmer-controlled GC in C++, and that a simplification of the current proposal would be satisfactory.
Meredith reported that the UK position on GC is that they would rather have standard without GC than a late standard
J16 voting members in favor of stopping talk about GC and advanced threading
WG favor oppose abstain
J16 lots 1 3
WG21 3 2 0
同时也可以看到,lambda也差点被列为inessential。不过从最后的清单来看,这个对普通程序员非常重要的特性依然保留在Blessed by evolution - wording available for initial review by Core一栏内。但是似乎命悬一线。
另外两个最关键的特性concept和concurrency被保住了:
Stroustrup expressed the feeling that shipping something without threads and without concepts will damage our reputation.
不过,concept化的库进展不好:
Meredith remarked that the LWG has made little progress with respect to conceptualizing the standard library, because many of the experts on concepts are working in CWG, and that there must be at least one meeting after CWG is done with concepts to complete the necessary LWG meeting.
好在后来英国人帮了大忙:
Glassborow reported the UK would vote no to a standard that had concepts in the core language but not in the library.
另一个坏消息是Initializer lists上次已经进入草案文本,但由于一些问题,又被撤了出来:
4) WG21/D2441=J16/07-0311, "Initializer lists WP wording (Revision 1)" held back because of
* Question about definition of narrowing conversion restrictions for float literals.
* Jason Merrill wants a shot at tweaking the overload resolution rules.
* Jaakko Jarvi, on the core reflector, pointed out that it might be surprising that template deduction might produce an initializer_list<X> parameter for a function template that doesn't expect one.
* It was pointed out that explicit constructors unfortunately get used implicitly in some sense to make objects out of raw {x, y, z} lists in calls.
Bjarne recounted a discussion in which the EWG found a solution to the narrow conversion problem, but he reported that the other problems "go fairly deep into the design of the proposal."
此外,便是一些鸡毛蒜皮的事情了。下一次会议在明年2月24-29,在Bellvue, WA召开。可能会通过concept和大部分的concurrency提案。希望他们别再弄出什么坏消息了。