C++17

C++17, C++11
, C++17 is the name for the most recent revision of the ISO/IEC 14882 standard for the C++ programming language.wikipedia
51 Related Articles

C++11

constexprmove constructormove constructors
In that time period, the C++17 revision was also called C++1z, following C++0x or C++1x for C++11 and C++1y for C++14. UTF-8 character literals (UTF-8 string literals have existed since C++11; C++17 adds the corresponding character literals for consistency, though as they are restricted to a single byte they can only store ASCII)
It was approved by International Organization for Standardization (ISO) on 12 August 2011, replacing C++03, superseded by C++14 on 18 August 2014 and later, by C++17.

C++

C++ programming languageC++ standardC++ language
, C++17 is the name for the most recent revision of the ISO/IEC 14882 standard for the C++ programming language.
C++ is standardized by the International Organization for Standardization (ISO), with the latest standard version ratified and published by ISO in December 2017 as ISO/IEC 14882:2017 (informally known as C++17).

C++20

*C++20
C++20 is the informal name for the revision of the ISO/IEC standard for the C++ programming language expected to follow C++17.

Digraphs and trigraphs

trigraphdigraphtrigraphs
Removal of trigraphs
Trigraphs were then proposed again for removal (not only deprecation) in C++17.

Option type

optional typeoptional objects
, for representing optional objects, a data type that may not always be returned by a given algorithm with support for non-return
In C++17 it is defined as the template class.

Exception handling

exceptionexceptionserror handling
, as a replacement of in exception handling
In the C++ language standard (C++11), this use of exception specifications as specified in the C++03 version of the standard was deprecated and was removed from the language in C++17.

C11 (C standard revision)

C11C11 (Annex K)ISO C11
C11 (C standard revision)
C++20, C++17, C++14, C++11, C++03, C++98, versions of the C++ programming language standard

C18 (C standard revision)

C18
C18 (C standard revision)
C++98, C++03, C++11, C++14, C++17, C++20 – versions of the C++ programming language standard

C++14

2014 standardC++C++2014
In that time period, the C++17 revision was also called C++1z, following C++0x or C++1x for C++11 and C++1y for C++14.

Standard Template Library

STLC++ Standard Template LibraryC++ STL
Few changes were made to the C++ Standard Template Library, although some algorithms in the header were given support for explicit parallelization and some syntactic enhancements were made.

Algorithm

algorithmscomputer algorithmalgorithm design
Few changes were made to the C++ Standard Template Library, although some algorithms in the header were given support for explicit parallelization and some syntactic enhancements were made.

Algorithm (C++)

algorithmsalgorithmStandard Library algorithms
Few changes were made to the C++ Standard Template Library, although some algorithms in the header were given support for explicit parallelization and some syntactic enhancements were made.

Syntax

syntacticsyntacticalsyntactically
Few changes were made to the C++ Standard Template Library, although some algorithms in the header were given support for explicit parallelization and some syntactic enhancements were made.

C++ Standard Library

libstdc++standard libraryits standard library
Removal of some deprecated types and functions from the standard library, including,, and old function adaptors

Namespace

namespacesname spacehierarchical namespace
Allowing attributes for namespaces and enumerators

Enumerated type

enumerationenumerationsenums
Allowing attributes for namespaces and enumerators

UTF-8

65001Unicode (UTF-8)code page 65001
UTF-8 character literals (UTF-8 string literals have existed since C++11; C++17 adds the corresponding character literals for consistency, though as they are restricted to a single byte they can only store ASCII)

ASCII

7-bit ASCIIAmerican Standard Code for Information InterchangeASCII printable characters
UTF-8 character literals (UTF-8 string literals have existed since C++11; C++17 adds the corresponding character literals for consistency, though as they are restricted to a single byte they can only store ASCII)

Floating-point arithmetic

floating pointfloating-pointfloating-point number
Hexadecimal floating-point literals

Initialization (programming)

initializationinitializedinitializer
copy-initialization and direct-initialization of objects of type from prvalue expressions of type (ignoring top-level cv-qualifiers) shall result in no copy or move constructors from the prvalue expression. See copy elision for more information.

Copy elision

return value optimizationelision
copy-initialization and direct-initialization of objects of type from prvalue expressions of type (ignoring top-level cv-qualifiers) shall result in no copy or move constructors from the prvalue expression. See copy elision for more information.

One Definition Rule

are defined twice
Inline variables, which allows the definition of variables in header files without violating the one definition rule. The rules are effectively the same as inline functions

Inline function

inlineinlinedinlining
Inline variables, which allows the definition of variables in header files without violating the one definition rule. The rules are effectively the same as inline functions

String (computer science)

stringstringscharacter string
, a read-only non-owning reference to a character sequence or string-slice