C++17
C++17 (also called C++1z) is the informal name for the future revision of the C++ ISO/IEC standard. The specification for the C++17 revision is speculated to be finished in 2017.
Expected features
As the specification for C++17 is just beginning, the following list is just a start. Many features will certainly be added in the next years.[1]
- Addition of a default text message for
static_assert
[2] - Removal of trigraphs[3][4]
- Allow
typename
in a template template parameter[5] - New rules for
auto
deduction from braced-init-list[6][7] std::uncaught_exceptions
, as a replacement ofstd::uncaught_exception
[8][9]- Nested namespace definition[10][7]
- Attributes for namespaces and enumerators[11][9]
- UTF-8 character literals[12][9]
- Constant evaluation for all non-type template arguments[13][9]
- Folding expressions[14][9]
- New insertion functions for
std::map
andstd::unordered_map
[15][16] - Uniform container access[17][16]
- Definition of "Contiguous Iterators"[18][16]
- Removal of some deprecated types and functions like
std::auto_ptr
,std::random_shuffle
or old function adaptors[19][7]
See also
References
- ↑ "Clang C++1z implementation status".
- ↑ "N3928: Extending static_assert, v2 (Walter E. Brown)".
- ↑ "N3981: Removing trigraphs??! (Richard Smith)". 2014-05-06.
- ↑ IBM comment on preparing for a Trigraph-adverse future in C++17, IBM paper N4210, 2014-10-10. Authors: Michael Wong, Hubert Tong, Rajan Bhakta, Derek Inglis
- ↑ "N4051: Allow typename in a template template parameter (Richard Smith)".
- ↑ "N3922: New Rules for auto deduction from braced-init-list (James Dennett)".
- ↑ 7.0 7.1 7.2 "Updates to my trip report".
- ↑ "N4259: Wording for std::uncaught_exceptions (Herb Sutter)".
- ↑ 9.0 9.1 9.2 9.3 9.4 "New core language papers adopted for C++17".
- ↑ "N4230: Nested namespace definition (Robert Kawulak, Andrew Tomazos)".
- ↑ "N4266: Attributes for namespaces and enumerators (Richard Smith)".
- ↑ "N4267: Adding u8 character literals (Richard Smith)".
- ↑ "N4268: Allow constant evaluation for all non-type template arguments (Richard Smith)".
- ↑ "N4295: Folding expressions (Andrew Sutton, Richard Smith)".
- ↑ "N4279: Improved insertion interface for unique-key maps (Thomas Köppe)".
- ↑ 16.0 16.1 16.2 "New standard library papers adopted for C++17".
- ↑ "N4280: Non-member size() and more (Riccardo Marcangelo)".
- ↑ "N4284: Contiguous Iterators (Jens Maurer)".
- ↑ "N4190: Removing auto_ptr, random_shuffle(), And Old <functional> Stuff (Stephan T. Lavavej)".
|