... FDIS, finally!
By Paolo Carlini on Apr 09, 2011
the week between March 21 and March 26 I attended the ISO C++ Meeting taking place in Madrid, Spain, and hosted by Telefónica I+D (*). As typical for European venues, about 55 people attended, representing about 25 companies and research institutions (**). The local guests did, in my opinion, a pretty good job, in particular, besides the organizers proper, I want to mention Prof. Jose D. Garcia (http://www.arcos.inf.uc3m.es/~jdaniel) and many interesting conversations with him and his colleagues during lunch times about topics related and not-so-related to our work.
As I mentioned already elsewhere, this specific week of work was special because we knew from the outset that we were very close to the Final Draft International Standard (FDIS) status, thus one more step beyond the Final Committee Draft (FCD): everybody tried to stay very focused during the sessions, thus avoiding spending time on relatively smaller issues (which we'll be processed at the next Meeting, in Bloomington, USA), or in any case not serious enough to block the release. Essentially, the work consisted first and foremost in responding to all the remaining responses to the FCD.
As usual, I joined the library subgroup (no evolution subgroup this time, of course), the other attendees had also the choices of core and concurrency. Again, as usual, I also tried, if possible, to prototype on the fly small changes in the GNU implementation of the Standard Library (eg, DR 1401), or, at least, double check the finest details of each proposed resolution vs our implementation (eg, turned out we were already doing the right thing about DR 2000 and DR 2036). Besides issues in the form of DRs, this is the list of papers addressing comments to the FCD which we looked at:
N3266 Revision 2 of: Proposed Resolution for CH 15: Double check copy and move semantics of classes due to new rules for default move constructors and assignment operators (replaces N3112)
revision of N3186 Appendix C: ISO C++ 2003 Compatibility, Revision 3 (replaces N3186)
D3263 More on noexcept for the Containers Library (rev 3) (replaces N3187)
N3241 CH-18 and US-85: Clarifying the state of moved-from objects
D3279 noexcept Prevents Library Validation (revised) (replaces N3248).
N3251 noexcept for the Atomics Library
N3252 A review of noexcept in the threads library
N3254 Proposed resolution for US104: Allocator-aware regular expressions (rev 2)
D3280 C++ Freestanding and Conditionally Supported (replaces N3256)
N3257 Range-based for statements and ADL (reviewed in full committee)
In my opinion, the most interesting discussions by far turned around N3248, by John Lakos (Blumberg): in a nutshell, the issue is that in some cases we don't want noexcept specifications in order to enable standard conforming validation modes. In fact, it is always conforming for an implementation to add noexcept specifiers beyond those explicitly mandated in the standard, whereas it is not removing specifiers. I also enjoyed the discussions about N3186, a rather down to earth section of the new standard about compatibility vs 2003, which however shed lights about some dark corners (I pointed out that in the new standard the containers cannot be explicitly instantiated anymore for non-default-constructible types due to member functions requiring default-constructible). I also liked the solutions people figure out in core for N3257, which doesn't require changes to the library bits of the facility but makes it more robust vs the usual ADL annoyances. People wanted also to discuss issues having to with more constexpr decorations in the library (N3228-N3231) but those papers do not respond to comments to the FCD, thus the discussion is postponed to the Bloomington Meeting. Likewise other small / non blocking issues, as I already mentioned above, and papers presenting new features suited for TR2 (eg, N3239).
I think that's it for now (***): for additional details and discussions don't hesitate to follow up (or contact me privately, if you want!)
(**) Details have to wait the official minutes.
(***) For an alternate, quick non-technical summary of the meeting: http://herbsutter.com/2011/03/25/we-have-fdis-trip-report-march-2011-c-standards-meeting/