Overview
ISO/IEC 14882:2020 - Programming languages - C++ is the International Standard that specifies requirements for implementations of the C++ programming language. Published as the sixth edition (2020-12), this document both defines the C++ language and sets compliance requirements for compiler and library implementers. It builds on the C standard (ISO/IEC 9899:2018) and describes language syntax, semantics, translation phases, and a comprehensive standard library.
Key topics and technical requirements
The standard covers language and library aspects with detailed, normative requirements. Key technical topics include:
- Implementation compliance - requirements for conformant compilers and library implementations.
- Lexical conventions & translation phases - tokenization, character sets, preprocessing, and separate translation rules.
- Core language rules - declarations, one-definition rule, scope, name lookup, types, memory and object models, and program execution.
- Classes, templates, and overloading - class semantics, member lookup, template parameters, instantiation and specialization, overload resolution.
- Modules and header units - module units, export/import semantics, global/private module fragments, and header unit importation.
- Exception handling and diagnostics - throwing/handling rules, special functions, and diagnostics library requirements.
- Standard library components - language support, containers, strings, smart pointers, formatting, coroutines, concepts, utilities, and more. The table of contents documents sections such as the Language Support Library, Concepts Library, Coroutines, Containers, Strings, and Formatting.
- Preprocessing & macros - conditional inclusion, file inclusion, macro replacement, pragma and error directives.
- Library-wide requirements - behavior guarantees, header names, and interactions with the C standard library.
Practical applications and who uses this standard
ISO/IEC 14882:2020 is essential for:
- Compiler and tool implementers - to build conformant C++ compilers, linkers, and language tooling.
- Standard library and runtime authors - to implement containers, algorithms, memory and type support as required.
- Software architects and developers - to understand guaranteed language behaviors, portability constraints, and portability best practices across platforms.
- Certification and QA teams - to validate conformance, portability, and safety-critical behavior.
- Educators and technical writers - as the definitive language reference for teaching and documentation.
Adhering to ISO/IEC 14882:2020 ensures consistent language semantics, predictable runtime behavior, and portable C++ code across compliant implementations.
Related standards
- ISO/IEC 9899:2018 - Programming languages - C (referenced as the C standard).
- Other ISO/IEC programming language and tool standards relevant to interoperability and conformance testing.