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
ifandswitch - Inline variables
if constexpr- Order of expression evaluation guarantees
- Dynamic memory allocation for over-aligned data
Library Extensions
std::optionalstd::variantstd::string_viewmerge()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