Current Status

Recent milestones: C++17 feature-complete, second round of TSes now under development

C++14 and a first round of six TSes have been published, and we've now actively started specification work on the next round of TSes of which one has been finished so far.

The committee is on track to produce another C++ Standard in 2017. To achieve that, we aim to have C++17's ballot comment resolution at our March 2017 meeting in Kona, HI, USA.

 


click to enlarge

Starting in 2012, the committee has transitioned to a "decoupled" model where major pieces of work can progress independently from the Standard itself and be delivered in "beta feature branch" TSes. Vendors can choose to implement these, and the community can gain experience with the std::experimental version of each feature. This lets us learn and adjust each feature's design based on experience before it is cast in stone when merged into the "trunk" C++ Standard itself. In the meantime, the Standard can be delivered on a more regular cadence with smaller and more predictable batches of features. This approach also helps C++ compilers to track the Standard more closely and add both the experimental and the draft-final C++ features in a more consistent order.

Many TSes are focusing particularly on producing new C++ standard libraries; to participate, see the instructions for how to Submit a Proposal. See the table below for current status.

Project Details

Here is a summary of the currently active projects and their appointed Project Editors.

  • Programming Language C++ IS: Richard Smith. This is the main C++ Standard project.
  • Library Fundamentals TS: Geoffrey Romer. A set of standard library extensions for vocabulary types like optional<> and other fundamental utilities.
  • Networking TS: Jonathan Wakely. A small set of network-related libraries including support for network byte order transformation and URIs.
  • Parallelism TS: 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.
  • Ranges TS: Casey Carter. Initially includes concept-based range versions of STL iterators and algorithms.
  • Modules TS: Gabriel Dos Reis. An alternative to the header inclusion-based build model.
  • Coroutines TS: Gor Nishanov. Lightweight coroutines for generators and concurrency.
  • (upcoming) Concurrency TS: Michael Wong. Initially includes library support for executors and non-blocking extensions to std::future. Additionally may include language extensions like coroutines, and additional libraries such as concurrent hash containers and latches.