The standard for C++17 is coming together. After a lengthy meeting in March and subsequent discussions, the actual feature list is shaping up to offer C++ developers a lot more hand-holding in modern cloud-based environments.
Among the changes approved are supports for parallelism, various file systems, and expanded use cases for lambdas. Specifically, lambdas are now allowed inside constexpr functions, and can also now be used to capture a copy of *this object by value, using the *this command.
(Related: C++ experience is in high demand)
The basic libraries for C++17 will also get new components, including the following new commands: any, optional, string_view, and shared_ptr (for arrays). This version of the language will also add support for memory pools and a new search algorithm.
The next C++17 committee meeting takes place later this month, and the team will discuss pending additions to the language. These changes include the movement of “if constexpr” branches to be evaluated at compile time, the addition of defaulted comparisons, and the new operator command, which allows for smart references in parallel with smart pointers.
Some new features were also proposed at the March meeting, but are still too premature to vote on in June. One of these proposed changes is the work on modules for the language. The nucleus of the next round of additions to the language will be discussed at the June meeting. These changes focus on ranges, networking, library fundamentals, and extending parallelism support in C++17.
Concurrency is also a part of this effort. The work on concurrency could include co-routines, which have been proposed. There is an additional proposal to improve 2D graphics support through a portable library that wraps the Cairo C API.
C++17 is targeted for a release in March 2017, but some of the proposed work, such as modules and the new concurrency work, will likely slip into C++20.