Recent milestones: C++14 CD, record attendance
In August 2013, the primary comment international ballot (Committee Draft, aka "CD") for C++14 was completed. Thanks to the high quality of the draft, the ballot results came in very clean: We received a total of 85 official comments (plus 30 unofficial late comments) from national bodies, which is far lower than than the over 500 comments received for each of the two comment ballots for C++0x/C++11.
At the September 2013 ballot resolution meeting, the committee generated final or tentative resolutions for all national body comments, and we expect all comment responses to be complete and applied at the upcoming February 2014 meeting, and for C++14 to enter its (potentially final) Draft International Standard (DIS) ballot following that meeting.
Both of the past two meetings saw record attendance, with over 100 experts attending and working concurrently in five or more breakouts at a time for most of the week.
Current Work: Library and Language Specifications (TS's, 2014-) and New Standards (C++14, C++17)
As illustrated above, before 2011 the committee followed a "monolithic" model where new features generally go into a single Standard working draft.
Starting in 2012, the committee has transitioned to a "decoupled" model where major pieces of work progress independently from the Standard itself and can be delivered asynchronously in the form of Technical Specifications (TS's) that are separate from the main Standard and can later be incorporated into the Standard. With releases targeting 2014 onward, we are focusing in particular on producing new C++ standard libraries; to participate, see the Call for Proposals and instructions for how to Submit a Proposal.
This decoupled model allows the committee to deliver smaller pieces of work in a faster and more predictable way. Decoupling enables this in a number of ways, including that each TS's work can progress at is own speed, can be delivered sooner without waiting for the next Standard, and can be delivered in a form that lets the community gain experience with the feature and possibly adjust its design before it is formally included in the actual Standard. Decoupling the work also allows the Standard itself to be delivered on a more regular cadence with smaller and more predictable "batches" of features, which helps compilers track the Standard more closely and encourages different compilers to add new features in a more consistent order.
Now that the pipeline has filled up, we are seeing the first products in the TS stream beginning to appear. See the table below for current status.
His is a summary of the current projects and their appointed Project Editors.
- Programming Language C++ IS: Stefanus Du Toit. This is the main C++ Standard project.
- File System TS: Beman Dawes. Work based on Boost.Filesystem v3, including file and directory iteration.
- Networking TS: Robert Pratte. A small set of network-related libraries including support for network byte order transformation and URIs.
- Concepts Lite TS: Andrew Sutton. Language extensions for template type checking.
Library Fundamentals TS: Jeffrey Yasskin. A set of standard library extensions for vocabulary types like
optional<>and other fundamental utilities.
Array Extensions TS: Lawrence Crowl. Language and library extensions related to arrays, including runtime-sized arrays (aka arrays of runtime bound) and
Extensions for Concurrency: Artur Laksberg. Initially includes library support for executors and non-blocking extensions to
std::future. Additionally may include language extensions like
await, and additional libraries such as concurrent hash containers and latches.
- Extensions for Parallelism: Jared Hoberock. Initially includes a Parallel STL library with support for parallel algorithms to exploit multiple cores, and vectorizable algorithms to exploit CPU and other vector units.