Small language features (C++17)
Nested namespace definitions, u8 char literals, static_assert without message, typename in template template params, hex floats, aggregates with bases, __has_include, and more.
Connected features
Papers
17 · Urbana 2014 → Issaquah 2016Changes auto x{1}; to deduce int rather than initializer_list<int>. Vote 25/5/36..
Allows static_assert without a message.
Allows typename as well as class for template template parameters.
Adds nested namespace definitions namespace a::b::c {}.
Allows qualification conversions on pointers to arrays of pointers (core issue 330).
Introduces the term 'forwarding reference' for T&& in deduction contexts.
Adds u8 character literals.
Adds __has_include.
Names 'default member initializer' for brace-or-equal-initializers of members.
Rewords inheriting constructors so they behave like other using-declarations (core issue 1941 et al).
Allows aggregates with public base classes.
Allows direct-list-initialization of enum class values from integers.
Allows range-for begin and end to have different types.
Adds hexadecimal floating-point literals.
Introduces the term 'templated entity'.
Allows pack expansions in using-declarations.
Allows a template template argument to match a more general template parameter (DR).