Current Status

Recent milestones: C++17 published, C++20 underway

C++17 and 10 TSes have been published, and work is now underway on two active TSes and C++20.

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 "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 library for socket-based networking (covering sockets, timers, buffer management, host name resolution and internet protocols) and asynchronous operations.
  • 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.