Standardization of C++

C++ is standardized by an ISO working group known as JTC1/SC22/WG21. So far, it has published four revisions of the C++ standard and is currently working on the next revision, C++17.

In 1998, the ISO working group standardized C++ for the first time as ISO/IEC 14882:1998, which is informally known as C++98. In 2003, it published a new version of the C++ standard called ISO/IEC 14882:2003, which fixed problems identified in C++98.

The next major revision of the standard was informally referred to as "C++0x", but it was not released until 2011.[19] C++11 (14882:2011) included many additions to both the core language and the standard library.[7]

In 2014, C++14 (also known as C++1y) was released as a small extension to C++11, featuring mainly bug fixes and small improvements.[20] The Draft International Standard ballot procedures completed in mid-August 2014.[21]

After C++14, a major revision, informally known as C++17 or C++1z, is planned for 2017,[20] which is almost feature-complete.[22]

As part of the standardization process, ISO also publishes technical reports and specifications:

  • ISO/IEC TR 18015:2006[23] on the use of C++ in embedded systems and on performance implications of C++ language and library features,
  • ISO/IEC TR 19768:2007[24] (also known as the C++ Technical Report 1) on library extensions mostly integrated into C++11,
  • ISO/IEC TR 29124:2010[25] on special mathematical functions,
  • ISO/IEC TR 24733:2011[26] on decimal floating point arithmetic,
  • ISO/IEC TS 18822:2015[27] on the standard filesystem library,
  • ISO/IEC TS 19570:2015[28] on parallel versions of the standard library algorithms,
  • ISO/IEC TS 19841:2015[29] on software transactional memory,
  • ISO/IEC TS 19568:2015[30] on a new set of library extensions, some of which are already integrated into C++17,
  • ISO/IEC TS 19217:2015[31] on the C++ Concepts

More technical specifications are in development and pending approval, including concurrency library extensions, a networking standard library, ranges, and modules.[32]