Das C++-Standardisierungskomitee veröffentlicht experimentelle C++-Sprach- und Bibliotheks-Erweiterungen für die zukünftige Standardisierung.
Hinweis: Bis 2012 wurden diese Veröffentlichungen im Format TR (Technical Report) veröffentlicht. Seit 2012 hat sich das ISO-Verfahren geändert, um das Format TS (Technical Specification) zu verwenden.
[bearbeiten] TR/TS-Spezifikationen
| ISO-Nummer |
Name |
Status |
Links, Header |
| ISO/IEC TR 18015:2006 |
Technical Report on C++ Performance |
Veröffentlicht 2006 (ISO-Store). Entwurf: TR18015 (2006-02-15).
|
|
| ISO/IEC TR 19768:2007 |
Technical Report on C++ Library Extensions |
Veröffentlicht 2007-11-15 (ISO-Store). Entwurf: N1836 (2005-06-24) ISO 29124 wurde ausgelagert, der Rest wurde in C++11 integriert.
|
|
| ISO/IEC 29124:2010 |
Extensions to the C++ Library to support mathematical special functions |
Veröffentlicht 2010-09-03 (ISO Store). Endgültiger Entwurf: N3060 (2010-03-06).
✔In C++17 integriert.
|
Spezialfunktionen (experimentell), Spezialfunktionen |
| ISO/IEC TR 24733:2011 |
Extensions for the programming language C++ to support decimal floating-point arithmetic |
Veröffentlicht 2011-10-25 (ISO Store) Entwurf: N2849 (2009-03-06). Könnte durch eine zukünftige TS oder eine zukünftige Revision von C++ abgelöst werden (der letzte Integrationsvorschlag war N3871).
|
|
| ISO/IEC TS 18822:2015 |
C++ File System Technical Specification |
Veröffentlicht 2015-06-18 (ISO store). Endgültiger Entwurf: N4100 (2014-07-04).
✔In C++17 integriert.
|
Dateisystem (experimentell), Dateisystem, <filesystem> |
| ISO/IEC TS 19570:2015 |
C++ Extensions for Parallelism |
Veröffentlicht 2015-06-24. (ISO Store). Endgültiger Entwurf: N4507 (2015-05-05).
✔In C++17 integriert.
|
Parallelität
|
| ISO/IEC TS 19841:2015 |
Transactional Memory TS |
Veröffentlicht 2015-09-16, (ISO Store). Endgültiger Entwurf: N4514 (2015-05-08). |
Transaktionaler Speicher
|
| ISO/IEC TS 19568:2015 |
C++ Extensions for Library Fundamentals |
Veröffentlicht 2015-09-30, (ISO Store). Endgültiger Entwurf: N4480 (2015-04-07).
✔Mit Ausnahme von Invocation Traits in C++17 integriert.
|
Bibliotheks-Erweiterungen
|
| ISO/IEC TS 19217:2015 |
C++ Extensions for Concepts |
Veröffentlicht 2015-11-13 (ISO Store). Endgültiger Entwurf: N4553 (2015-10-02). Aktueller Entwurf: P0734R0 (2017-07-14).
✔In C++20 integriert (mit Modifikationen).
|
Einschränkungen und Konzepte (experimentell), Konzepte, <concepts> |
| ISO/IEC TS 19571:2016 |
C++ Extensions for Concurrency |
Veröffentlicht 2016-01-19 (ISO Store). Endgültiger Entwurf: P0159R0 (2015-10-22).
✔Teilweise in C++20 integriert.
|
Concurrency
|
| ISO/IEC TS 19568:2017 |
C++ Extensions for Library Fundamentals, Version 2 |
Veröffentlicht 2017-03-30 (ISO Store). Entwurf: N4617 (2016-11-28).
✔Teilweise in C++17 und C++20 integriert.
|
Bibliotheks-Erweiterungen 2
|
| ISO/IEC TS 21425:2017 |
Ranges TS |
Veröffentlicht 2017-12-05 (ISO Store). Entwurf: N4685 (2017-07-31).
✔In C++20 integriert.
|
Bereiche (experimentell), Bereiche, <ranges> |
| ISO/IEC TS 22277:2017 |
Coroutines TS |
Veröffentlicht 2017-12-05 (ISO Store). Entwurf: N4736 (2018-03-31). Neuester Entwurf: N4775 (2018-10-07).
✔In C++20 integriert.
|
<coroutine>
|
| ISO/IEC TS 19216:2018 |
Networking TS |
Veröffentlicht 2018-04-24 (ISO Store). Entwurf: N4734 (2017-04-04). Neuester Entwurf: N4771 (2018-10-08).
| Siehe auch Nicht-TS-Vorschläge
|
- Standard Secure Networking - P2586R0 (2022-09-13)
- Sender-Receiver Interface For Networking - P2762R2 (2023-10-12)
- A proposed direction for C++ Standard Networking based on IETF TAPS - P3185R0 (2024-12-14)
- Proposed API for creating TAPS based networking connections - P3482R0 (2024-12-14)
|
|
Netzwerk
|
| ISO/IEC TS 21544:2018 |
Modules TS |
Veröffentlicht 2018-05-16 (ISO Store). Endgültiger Entwurf: N4720 (2018-01-29).
✔In C++20 integriert.
|
|
| ISO/IEC TS 19570:2018 |
Parallelism TS Version 2 |
Veröffentlicht 2018-11-15 (ISO Store). Endgültiger Entwurf: N4793 (2018-11-26). Entwurf nach Veröffentlichung: N4808 (2019-03-11). Siehe auch Nicht-TS `std::simd`-Vorschläge unten. |
Parallelität 2
|
| ISO/IEC TS 23619:2021 |
Reflection TS |
Veröffentlicht 2021-10-11 (ISO store). Entwurf: N4856 (2020-03-02). Siehe auch Nicht-TS-Vorschläge unten. |
Reflektion
|
|
|
Numerik |
Frühe Entwicklung. Entwurf: P1889R1 (2019-12-27). |
|
| ISO/IEC TS 9922 |
Concurrency TS Version 2 |
Veröffentlicht 2024-10-09 (ISO Store). Entwurf: N4956 (2023-07-05). |
Nebenläufigkeit 2
|
| ISO/IEC TS 19568:2024 |
C++ Extensions for Library Fundamentals, Version 3 |
Veröffentlicht 2024-08-26 (ISO Store). Entwurf: N4948 (2023-05-08). |
Bibliotheks-Erweiterungen 3
|
| ISO/IEC DTS 12907 |
Transactional Memory TS, Version 2 |
Frühe Entwicklung. Entwurf: N4923 (2022-10-14). |
|
| ISO/IEC NP 19569 |
Array Extensions TS |
× Zurückgezogen. Verlassener Entwurf: N3820 (2013-10-10). |
|
[bearbeiten] Nicht-TS-Vorschläge
| Name |
Status |
Links, Header |
| Lineare Algebra |
✔In C++26 integriert. Vorschlag: P1673R13 (2023-11-10).
| Weitere Vorschläge
|
- A proposal to add linear algebra support to the C++ standard library - P1385R7 (2022-10-15)
- Evolving a Standard C++ Linear Algebra Library from the BLAS - P1674R2 (2022-05-15)
- Presentation of P1385R7 to LEWG at Issaquah 2023 - P2802R0 (2023-02-09)
- Fix C++26 by optimizing linalg::conjugated for non-complex value types - P3050R3 (2024-10-29)
- Fix C++26 by making the symmetric and Hermitian rank-k and rank-2k updates consistent with the BLAS - P3371R3 (2024-10-29)
|
|
<linalg>
|
| std::execution
|
✔In C++26 integriert. Vorschlag: P2300R10 (2024-06-28).
| Weitere Vorschläge
|
- System execution context - P2079R6 (2025-01-13)
- Sender-Receiver Interface for Networking - P2762R2 (2023-10-12)
- Member customization points for Senders and Receivers - P2855R1 (2024-02-22)
- An Event Model for C++ Executors - P2882R0 (2023-05-11)
- Sender Algorithm Customization - P2999R3 (2023-12-13)
- std::execution introduction - P3090R0 (2024-02-14)
- A plan for std::execution for C++26 - P3109R0 (2024-02-12)
- Improving diagnostics for Sender expressions - P3164R3 (2025-01-10)
- Reconsidering the std::execution::on algorithm - P3175R3 (2024-06-25)
- A sender query for completion behaviour - P3206R0 (2025-01-13)
-
finally, write_env, and unstoppable Sender Adaptors - P3284R2 (2024-11-21) - Fixing Lazy Sender Algorithm Customization - P3303R1 (2024-06-25)
- A Utility for Creating Execution Environments - P3325R5 (2024-11-22)
- When Do You Know
connect Doesn't Throw? - P3388R1 (2025-01-11) - std::execution wording fixes - P3396R1 (2024-11-19)
- Enabling more efficient stop-token based cancellation of senders - P3409R1 (2024-11-17)
-
system_scheduler on Win32, Darwin and Linux - P3456R0 (2024-10-15) - Summarizing std::execution::bulk() issues - P3481R1 (2025-01-13)
- High-Quality Sender Diagnostics with Constexpr Exceptions - P3557R0 (2025-01-13)
|
|
Execution (experimentell), Ausführung, <execution>
|
| std::inplace_vector
|
✔In C++26 integriert. Vorschlag: P0843R14 (2024-06-26).
| Weitere Vorschläge
|
-
inplace_vector - P0843(R7) LEWG-Präsentation - P2925R0 (2023-06-16) - A direction for Vector - P3147R1 (2024-03-18)
- An allocator-aware std::inplace_vector - P3160R2 (2024-10-15)
|
|
<inplace_vector>
|
experimental::simd std::simd
|
✔In C++26 integriert. Vorschlag: P1928R15 (2024-11-22). Das Hauptdokument (TS ISO/IEC 19570:2018) wird unter "C++ Extensions for Parallelism V2" oben beschrieben.
|
Datenparallele Typen (experimentell), Datenparallele Typen, <simd>
|
| Verträge |
✔In C++26 integriert. Vorschlag: Contracts for C++ - P2900R14 (2025-02-13)
| Weitere Vorschläge
|
- A Proposal to Publish a Technical Specification for Contracts - P2659R2 (2022-11-30)
- Proposed Contracts TS - P2660R0 (2022-10-14)
- Miscellaneous amendments to the Contracts TS - P2661R0 (2022-10-15)
- Contracts for C++: Prioritizing Safety - P2680R1 (2022-12-15)
- A proposed plan for contracts in C++ - P2695R1 (2023-02-09)
- Proposal of Condition-centric Contracts Syntax - P2737R0 (2022-12-30)
- Contracts for C++: Prioritizing Safety - Presentation slides - P2743R0 (2022-12-13)
- Evaluation of Checked Contracts - P2751R1 (2023-02-14)
- A Bold Plan for a Complete Contracts Facility - P2755R1 (2024-04-11)
- The idea behind the contracts MVP - P2817R0 (2023-03-05)
- Proposal of Contracts Supporting Const-On-Definition Style - P2829R0 (2023-04-13)
- Contract violation handling semantics for the contracts MVP - P2852R0 (2023-04-24)
- The Lakos Rule: Narrow Contracts and noexcept Are Inherently Incompatible - P2861R0 (2023-05-19)
- Requirements for a Contracts syntax - P2885R3 (2023-10-05)
- Contracts on lambdas - P2890R2 (2023-12-13)
- Constant evaluation of Contracts - P2894R2 (2024-01-11)
- Outstanding design questions for the Contracts MVP - P2896R0 (2023-08-22)
- Contracts for C++ - Rationale - P2899R0 (2025-01-13)
- A Principled Approach to Open Design Questions for Contracts - P2932R3 (2024-01-16)
- An Attribute-Like Syntax for Contracts - P2935R4 (2023-11-05)
- Contracts must avoid disclosing sensitive information - P2947R0 (2023-07-20)
- Slides for P2861R0: Narrow Contracts and noexcept are Inherently Incompatible - P2949R0 (2023-07-14)
- Contracts and virtual functions for the Contracts MVP - P2954R0 (2023-08-03)
- Contracts and coroutines - P2957R2 (2024-10-14)
- A natural syntax for Contracts - P2961R2 (2023-11-08)
- An Overview of Syntax Choices for Contracts - P3028R0 (2023-11-05)
- Protection against modifications in contracts - P3071R1 (2023-12-17)
- Remove
evaluation_undefined_behavior and will_continue from the Contracts MVP - P3073R0 (2024-01-27) - Should
ignore and observe exist for constant evaluation of contracts? - P3079R0 (2024-01-11) - Contracts for C++: Support for virtual functions - P3097R0 (2024-04-15)
- Contracts for C++: Postcondition captures - P3098R1 (2024-12-11)
- Undefined and erroneous behavior are contract violations - P3100R1 (2024-10-16)
- Tokyo Technical Fixes to Contracts - P3119R1 (2024-05-09)
- Contracts on virtual functions for the Contracts MVP - P3165R0 (2024-02-27)
- Inherited contracts - P3169R0 (2024-04-14)
- Contract testing support - P3183R1 (2024-05-22)
- Slides for LEWG presentation of P2900R6: Contracts for C++ - P3189R0 (2024-03-19)
- Slides for LEWG presentation of P2900R7: Contracts for C++ - P3190R0 (2024-03-20)
- A response to the Tokyo EWG polls on the Contracts MVP (P2900R6) - P3197R0 (2024-04-12)
- A takeaway from the Tokyo LEWG meeting on Contracts MVP - P3198R0 (2024-03-29)
- Why Contracts? - P3204R0 (2024-11-07)
- The contract of sort() - P3212R0 (2024-07-03)
- Contracts for C++: Naming the Louis semantic - P3226R0 (2024-04-12)
- Contracts for C++: Fixing the contract violation handling API - P3227R1 (2024-10-24)
- Contracts for C++: Revisiting contract check elision and duplication - P3228R1 (2024-05-21)
- Making erroneous behaviour compatible with Contracts - P3229R0 (2025-01-13)
- An alternate proposal for naming contract semantics - P3238R0 (2024-05-06)
- A unified syntax for Pattern Matching and Contracts when introducing a new name - P3249R0 (2024-05-22)
- C++ contracts with regards to function pointers - P3250R0 (2024-05-07)
- C++ contracts and coroutines - P3251R0 (2024-05-07)
- Make the predicate of
contract_assert more regular - P3257R0 (2024-04-26) - Ship Contracts in a TS - P3265R3 (2024-05-28)
- Approaches to C++ Contracts - P3267R1 (2024-05-22)
- C++ Contracts Constification Challenges Concerning Current Code - P3268R0 (2024-05-07)
- Do Not Ship Contracts as a TS - P3269R0 (2024-05-21)
- Repetition, Elision, and Constification w.r.t.
contract_assert - P3270R0 (2024-05-22) - Function Usage Types (Contracts for Function Pointers) - P3271R1 (2024-10-15)
- P2900 Is Superior to a Contracts TS - P3276R0 (2024-05-18)
- Contracts: Protecting The Protector - P3285R0 (2024-05-15)
- Integrating Existing Assertions With Contracts - P3290R2 (2024-09-06)
- C++26 Needs Contract Checking - P3297R1 (2024-06-21)
- An opt-in approach for integration of traditional assert facilities in C++ contracts - P3311R0 (2024-05-22)
- Compile time resolved contracts - P3317R0 (2024-05-22)
- Contracts Interaction With Tooling - P3321R0 (2024-07-12)
- Contract assertions on function pointers - P3327R0 (2024-10-16)
- Observable Checkpoints During Contract Evaluation - P3328R0 (2024-06-14)
- Usage Experience for Contracts with BDE - P3336R0 (2024-06-23)
- Contracts - What are we doing here (EWG Presentation) - P3343R0 (2024-06-25)
- Virtual Functions on Contracts (EWG - Presentation for P3097) - P3344R0 (2024-06-28)
- Class invariants and contract checking philosophy - P3361R1 (2024-07-23)
- Statische Analyse und „Sicherheit“ von Verträgen, P2900 vs P2680/P3285 - P3362R0 (2024-08-13)
- Vertragszusicherungen im Vergleich zu statischer Analyse und „Sicherheit“ - P3376R0 (2024-10-14)
- Statische Analyse von Verträgen mit P2900 - P3386R1 (2024-11-25)
- Vertragszusicherungen für Coroutinen - P3387R0 (2024-10-09)
- Spezifizierung von Vertragszusicherungs-Eigenschaften mit Labels - P3400R0 (2025-01-09)
- Verbesserung der Behandlung von Ausnahmen, die aus Vertragsprädikaten ausgelöst werden - P3417R0 (2024-10-16)
- Contract Implementors Report - P3460R0 (2024-10-16)
- Härtung der Standardbibliothek - P3471R2 (2024-12-14)
- Constifizierung sollte nicht Teil des MVP (Minimal Viable Product) sein - P3478R0 (2024-10-16)
- Untersuchung strenger Vertragsprädikate - P3499R0 (2025-01-13)
- Sind Verträge „sicher“? - P3500R0 (2025-01-13)
- Folien für P2900R11 - Verträge für C++ - P3502R0 (2024-11-18)
- P2900 ist immer noch nicht bereit für C++26 - P3506R0 (2025-01-13)
- Verletzungshandler vs. noexcept - P3541R1 (2025-01-07)
- Core Language Contracts By Default - P3558R0 (2025-01-12)
- Vertragskonzerne - P3573R0 (2025-01-12)
- Erfordern eines nicht-werfenden Standard-Vertragsverletzungs-Handlers - P3577R0 (2025-01-12)
- Eine Vertragsverletzung beobachtet? Überspringe nachfolgende Zusicherungen! - P3582R0 (2025-01-13)
- Verträge, Typen & Funktionen - P3583R0 (2025-01-13)
|
|
Vertragszusicherungen, Funktionsvertragspezifizierer, contract_assert, pre, post, <contracts>
|
| Pattern Matching |
Frühe Entwicklung. Entwurf P1371R3 (2020-09-15).
| Weitere Vorschläge
|
- Pattern Matching mit is und as - P2392R3 (2024-10-16)
- Pattern Matching: match Ausdruck - P2688R5 (2025-01-13)
- switch für Pattern Matching - P2940R0 (2022-04-18)
- Bezeichner für Pattern Matching - P2941R0 (2022-02-24)
- Eine Nachbedingung *ist* ein Pattern Match - P3210R2 (2024-09-10)
- A unified syntax for Pattern Matching and Contracts when introducing a new name - P3249R0 (2024-05-22)
- Eine einfachere Notation für PM - P3332R0 (2024-06-18)
- Folien für P2688R2 - Pattern Matching: match Ausdruck - P3476R0 (2024-10-16)
- Pattern Matching: Customization Point für Open Sum Types - P3521R0 (2024-12-17)
- Pattern Matching: *variant-like* und 'std::expected' - P3527R1 (2025-01-13)
- Pattern Matching - P3572R0 (2025-01-12)
|
|
|
| Reflektion |
Das Hauptdokument (ISO/IEC TS 23619:2021) wird in Reflection TS oben beschrieben.
| Weitere Vorschläge
|
- Skalierbare Reflexion in C++ - P1240R2 (2022-01-14)
- Erweiterungsanweisungen - P1306R3 (2024-10-14)
- Reflexion über Attribute - P1887R1 (2020-01-13)
- Metaprogrammierung - P2237R0 (2020-10-15)
- Python-Bindings mit wertebasierter Reflexion - P2911R1 (2023-10-13)
- Reflexion für C++26 - P2996R9 (2025-01-13)
- Verwendung von Reflexion zur Ersetzung einer Metasprache für die Generierung von JS-Bindings - P3010R0 (2023-10-13)
- ABI-Vergleich mit Reflexion - P3095R0 (2024-02-15)
- Funktionsparameter-Reflexion in Reflexion für C++26 - P3096R5 (2024-12-14)
- Generative Erweiterungen für Reflexion - P3157R1 (2024-05-22)
- Syntax für Reflexion - P3381R0 (2024-09-17)
- Attribute-Reflexion - P3385R3 (2025-01-07)
- Annotationen für Reflexion - P3394R1 (2025-01-13)
- Zusammenfassung der Reflexions-Syntaxoptionen - P3419R0 (2024-10-11)
- Reflexion von Templates - P3420R1 (2025-01-13)
- Der Reflexions-Header sollte Abhängigkeiten von der Standardbibliothek minimieren - P3429R1 (2024-11-29)
- Reflexion und Metaprogrammierung - P3435R0 (2024-10-14)
- Vorgeschlagene Standardprinzipien: C++ reflektieren, C++ generieren - P3437R1 (2024-11-07)
- Reflexion über den SG21 2024 Prozess - P3443R0 (2024-10-14)
- Ein Vorschlag für die Zugriffssteuerung bei der Reflexion - P3451R0 (2024-10-15)
- Gedanken über Reflexion und Zugriff - P3493R0 (2024-11-10)
- Modellierung von Zugriffssteuerung mit Reflexion - P3547R0 (2025-01-09)
- Fehlerbehandlung in der Reflexion - P3560R0 (2025-01-12)
- Aufteilung von define_aggregate von Reflection - P3569R0 (2025-01-11)
- Erneute Überlegung des Reflexionszugriffs für C++26 - P3587R0 (2025-01-13)
|
|
Reflexion (experimentell) |
| 2D-Grafik |
Frühe Entwicklung. Entwurf P0267R10 (2019-10-07). |
|
| Graph-Bibliothek |
Frühe Entwicklung.
| Weitere Vorschläge
|
- Graph-Bibliothek: Übersicht - P3126R2 (2024-08-05)
- Graph-Bibliothek: Algorithmen - P3128R2 (2024-09-12)
- Graph-Bibliothek: Graph Container Interface - P3130R2 (2024-08-05)
- Graph-Bibliothek: Graph Container - P3131R2 (2024-08-05)
|
|
|
| Statistiken |
Frühe Entwicklung.
| Weitere Vorschläge
|
- Grundlegende Statistiken - P1708R9 (2024-10-15)
- Anmerkungen zu grundlegenden Statistiken, P1708R9 - P3495R0 (2024-11-13)
|
|
|
| Profile |
Frühe Entwicklung.
| Weitere Vorschläge
|
- Sicherheitsprofile: Typsicher- und ressourcensichere Programmierung in ISO Standard C++ - P2816R0 (2023-02-16)
- Konkrete Vorschläge für initiale Profile - P3038R0 (2023-12-16)
- Kernsicherheitsprofile: Spezifikation, Adaptierbarkeit und Auswirkungen - P3081R0 (2024-10-16)
- Ein Rahmenwerk für die Profilentwicklung - P3274R0 (2024-05-10)
- Ein Sicherheitsprofil zur Verifizierung der Klasseninitialisierung - P3402R1 (2024-10-15)
- Profil-Invalidierung – Eliminierung von hängenden Zeigern - P3446R0 (2024-10-14)
- Profile-Syntax - P3447R0 (2024-10-14)
- Antwort auf Kernsicherheitsprofile (P3081R0) - P3543R0 (2024-12-17)
- Die Fülle an Problemen mit Profilen - P3586R0 (2025-01-13)
- C++ Profile: Das Framework - P3589R0 (2025-01-13)
|
|
|