C 17
suggest changeThe C++17 standard is feature complete and has been proposed for standardization. In compilers with experimental support for these features, it is usually referred to as C++1z.
Language Extensions
- Fold Expressions
- declaring non-type template arguments with
auto
- Guaranteed copy elision
- Template parameter deduction for constructors
- Structured bindings
- Compact nested namespaces
- New attributes:
[[fallthrough]]
,[[nodiscard]]
,[[maybe_unused]]
- Default message for
static_assert
- Initializers in
if
andswitch
- Inline variables
if constexpr
- Order of expression evaluation guarantees
- Dynamic memory allocation for over-aligned data
Library Extensions
std::optional
std::variant
std::string_view
merge()
andextract()
for associative containers- A file system library with the
<filesystem>
header. - Parallel versions of most of the standard algorithms (in the
<algorithm>
header). - Addition of mathematical special functions in the
<cmath>
header. - Moving nodes between map<>, unordered_map<>, set<>, and unordered_set<>
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents