Recent milestones: C++14 DIS, 8 TS's under development
As of February 2014, C++14 is entering its possibly-final international ballot (DIS, or Draft International Standard). If all national bodies approve, the C++14 International Standard will be published in late summer.
Beyond C++14, the committee contemplates producing another C++ Standard in approximately 2017. That doesn't mean nothing is happening in the meantime, however, because we currently have eight (8) separate Technical Specifications underway, several of which are on track to be published in 2014 and 2015.
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.
With releases targeting 2014 onward, the TS's are focusing particularly on producing new C++ standard libraries; to participate, see the Call for Proposals and instructions for how to Submit a Proposal.
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.
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: Jeffrey Yasskin. A set of standard library extensions for vocabulary types like
optional<>and other fundamental utilities.
- Networking TS: Kyle Kloepper. 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.