Recent milestones: C++14 published, 8 TS's under development
C++14 and several TSes have been published, and we're working on C++17.
The committee contemplates producing another C++ Standard in approximately 2017. To achieve that, we aim to have the C++17 standard feature-complete at our June 2016 meeting in Oulu, Finland.
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 as separate TS's. 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 formally included in a future version of the actual C++ Standard. In the meantime, the C++ Standard itself 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.
The TS's 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.
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.
- File System TS: Beman Dawes. Work based on Boost.Filesystem v3, including file and directory iteration.
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.
- Concepts TS: Andrew Sutton. Extensions for template type checking.
Arrays TS: Lawrence Crowl. Language and library extensions related to arrays, including runtime-sized arrays (aka arrays of runtime bound) and
- 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.
Concurrency TS: 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.
- Transactional Memory TS: Michael Wong. A promising way to deal with mutable shared memory, that is expected to be more usable and scalable than current techniques based on atomics and mutexes.