Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/experimental"

From cppreference.com
< cpp
m
m (TR/TS specifications)
 
(31 intermediate revisions by 8 users not shown)
Line 4: Line 4:
 
The C++ standards committee publishes experimental C++ language and library extensions for future standardization.
 
The C++ standards committee publishes experimental C++ language and library extensions for future standardization.
  
Note: until 2012, these publications used the TR (technical report) format. Since 2012 ISO procedure changed to use the TS (technical specification) format.
+
Note: until 2012, these publications used the '''TR''' (technical report) format. Since 2012 ISO procedure changed to use the '''TS''' (technical specification) format.
  
 +
====TR/TS specifications====
 
{|table class=wikitable
 
{|table class=wikitable
 
|-
 
|-
!ISO number||Name||Status||links
+
!ISO number||Name||Status||Links, headers
 
|-
 
|-
| ISO/IEC TR 18015:2006
+
|ISO/IEC TR 18015:2006
| Technical Report on C++ Performance
+
|Technical Report on C++ Performance
| Published 2006 ([https://www.iso.org/standard/43351.html ISO store]).
+
|Published 2006 ([https://www.iso.org/standard/43351.html ISO store]).
 
Draft: [https://www.open-std.org/jtc1/sc22/wg21/docs/TR18015.pdf TR18015] (2006-02-15).
 
Draft: [https://www.open-std.org/jtc1/sc22/wg21/docs/TR18015.pdf TR18015] (2006-02-15).
| <!-- {{tt|std::hardware}} -->
+
|<!--{{tt|std::hardware}}-->
 
|-
 
|-
| ISO/IEC TR 19768:2007
+
|ISO/IEC TR 19768:2007
| Technical Report on C++ Library Extensions
+
|Technical Report on C++ Library Extensions
| Published 2007-11-15 ([https://www.iso.org/standard/43289.html ISO store]).
+
|Published 2007-11-15 ([https://www.iso.org/standard/43289.html ISO store]).
 
Draft: {{stddoc|n1836}} (2005-06-24)<br>
 
Draft: {{stddoc|n1836}} (2005-06-24)<br>
 
ISO 29124 split off, the rest merged into C++11.
 
ISO 29124 split off, the rest merged into C++11.
 
|
 
|
 
|-
 
|-
| ISO/IEC 29124:2010
+
|ISO/IEC 29124:2010
| Extensions to the C++ Library to support mathematical special functions
+
|Extensions to the C++ Library to support mathematical special functions
| Published 2010-09-03 ([https://www.iso.org/standard/50511.html ISO Store]).
+
|Published 2010-09-03 ([https://www.iso.org/standard/50511.html ISO Store]).
 
Final draft: {{stddoc|n3060}} (2010-03-06).<br>
 
Final draft: {{stddoc|n3060}} (2010-03-06).<br>
 
{{mark_ok}}[[cpp/numeric/special_functions|Merged into C++17]].
 
{{mark_ok}}[[cpp/numeric/special_functions|Merged into C++17]].
| {{rl|special functions}}
+
|{{rl|special functions|Special functions}}
 
|-
 
|-
| ISO/IEC TR 24733:2011
+
|ISO/IEC TR 24733:2011
| Extensions for the programming language C++ to support decimal floating-point arithmetic
+
|Extensions for the programming language C++ to support decimal floating-point arithmetic
| Published 2011-10-25 ([https://www.iso.org/standard/38843.html ISO Store])
+
|Published 2011-10-25 ([https://www.iso.org/standard/38843.html ISO Store])
 
Draft: {{stddoc|n2849}} (2009-03-06).<br>
 
Draft: {{stddoc|n2849}} (2009-03-06).<br>
 
May be superseded by a future TS or merged into a future revision of C++ (most recent merge proposal was {{stddoc|n3871}}).
 
May be superseded by a future TS or merged into a future revision of C++ (most recent merge proposal was {{stddoc|n3871}}).
| <!-- {{tt|decimal32}}<br>{{tt|decimal64}}<br>{{tt|decimal128}} -->
+
|<!--{{tt|decimal32}}<br>{{tt|decimal64}}<br>{{tt|decimal128}}-->
 
|-
 
|-
| ISO/IEC TS 18822:2015
+
|ISO/IEC TS 18822:2015
| C++ File System Technical Specification
+
|C++ File System Technical Specification
| Published 2015-06-18 ([https://www.iso.org/standard/63483.html ISO store]). Final draft: {{stddoc|n4100}} (2014-07-04).<br>
+
|Published 2015-06-18 ([https://www.iso.org/standard/63483.html ISO store]). Final draft: {{stddoc|n4100}} (2014-07-04).<br>
 
{{mark_ok}}[[cpp/filesystem|Merged into C++17]].
 
{{mark_ok}}[[cpp/filesystem|Merged into C++17]].
| {{rl|fs|filesystem}}
+
|{{rl|fs|Filesystem}}, {{header|filesystem}}
 
|-
 
|-
| ISO/IEC TS 19570:2015
+
|ISO/IEC TS 19570:2015
| C++ Extensions for Parallelism
+
|C++ Extensions for Parallelism
| Published 2015-06-24. ([https://www.iso.org/standard/65241.html ISO Store]). Final draft: {{stddoc|n4507}} (2015-05-05).<br>
+
|Published 2015-06-24. ([https://www.iso.org/standard/65241.html ISO Store]). Final draft: {{stddoc|n4507}} (2015-05-05).<br>
 
{{mark_ok}}Merged into C++17.
 
{{mark_ok}}Merged into C++17.
| {{rl|parallelism}}
+
|{{rl|parallelism|Parallelism}}
 
|-
 
|-
| ISO/IEC TS 19841:2015
+
|ISO/IEC TS 19841:2015
| Transactional Memory TS
+
|Transactional Memory TS
| Published 2015-09-16, ([https://www.iso.org/standard/66343.html ISO Store]). Final draft: {{stddoc|n4514}} (2015-05-08).
+
|Published 2015-09-16, ([https://www.iso.org/standard/66343.html ISO Store]). Final draft: {{stddoc|n4514}} (2015-05-08).
| [[cpp/language/transactional_memory|transactional memory]]
+
|[[cpp/language/transactional_memory|Transactional memory]]
 
|-
 
|-
| ISO/IEC TS 19568:2015
+
|ISO/IEC TS 19568:2015
| C++ Extensions for Library Fundamentals
+
|C++ Extensions for Library Fundamentals
| Published 2015-09-30, ([https://www.iso.org/standard/65238.html ISO Store]). Final draft: {{stddoc|n4480}} (2015-04-07).<br>
+
|Published 2015-09-30, ([https://www.iso.org/standard/65238.html ISO Store]). Final draft: {{stddoc|n4480}} (2015-04-07).<br>
 
{{mark_ok}}Merged into C++17 except for invocation traits.
 
{{mark_ok}}Merged into C++17 except for invocation traits.
|{{rl|lib_extensions|library extensions}}
+
|{{rl|lib_extensions|Library extensions}}
 
|-
 
|-
| ISO/IEC TS 19217:2015
+
|ISO/IEC TS 19217:2015
| C++ Extensions for Concepts
+
|C++ Extensions for Concepts
| Published 2015-11-13 ([https://www.iso.org/standard/64031.html ISO Store]). Final draft: {{stddoc|n4553}} (2015-10-02). Current draft: {{stddoc|p0734r0}} (2017-07-14).<br>
+
|Published 2015-11-13 ([https://www.iso.org/standard/64031.html ISO Store]). Final draft: {{stddoc|n4553}} (2015-10-02). Current draft: {{stddoc|p0734r0}} (2017-07-14).<br>
 
{{mark_ok}}[[cpp/language/constraints|Merged into C++20]] (with modifications).
 
{{mark_ok}}[[cpp/language/constraints|Merged into C++20]] (with modifications).
|{{rl|constraints|constraints and concepts}}
+
|{{rl|constraints|Constraints and concepts}}, {{header|concepts}}
 
|-
 
|-
| ISO/IEC TS 19571:2016
+
|ISO/IEC TS 19571:2016
| C++ Extensions for Concurrency
+
|C++ Extensions for Concurrency
| Published 2016-01-19 ([https://www.iso.org/standard/65242.html ISO Store]). Final draft: {{stddoc|p0159r0}} (2015-10-22).<br>
+
|Published 2016-01-19 ([https://www.iso.org/standard/65242.html ISO Store]). Final draft: {{stddoc|p0159r0}} (2015-10-22).<br>
 
{{mark_ok}}Partially merged into C++20.
 
{{mark_ok}}Partially merged into C++20.
| {{rl|concurrency}}
+
|{{rl|concurrency|Concurrency}}
 
|-
 
|-
| ISO/IEC TS 19568:2017
+
|ISO/IEC TS 19568:2017
| C++ Extensions for Library Fundamentals, Version 2
+
|C++ Extensions for Library Fundamentals, Version 2
| Published 2017-03-30 ([https://www.iso.org/standard/70587.html ISO Store]). Draft: {{stddoc|n4617}} (2016-11-28).<br>
+
|Published 2017-03-30 ([https://www.iso.org/standard/70587.html ISO Store]). Draft: {{stddoc|n4617}} (2016-11-28).<br>
 
{{mark_ok}}Partially merged into C++17 and C++20.
 
{{mark_ok}}Partially merged into C++17 and C++20.
| {{rl|lib_extensions_2|library extensions 2}}
+
|{{rl|lib_extensions_2|Library extensions 2}}
 
|-
 
|-
| ISO/IEC TS 21425:2017
+
|ISO/IEC TS 21425:2017
| Ranges TS
+
|Ranges TS
| Published 2017-12-05 ([https://www.iso.org/standard/70910.html ISO Store]). Draft: {{stddoc|n4685}} (2017-07-31).<br>
+
|Published 2017-12-05 ([https://www.iso.org/standard/70910.html ISO Store]). Draft: {{stddoc|n4685}} (2017-07-31).<br>
 
{{mark_ok}}[[cpp/ranges|Merged into C++20]].
 
{{mark_ok}}[[cpp/ranges|Merged into C++20]].
| {{rl|ranges}}
+
|{{rl|ranges|Ranges}}, {{header|ranges}}
 
|-
 
|-
| ISO/IEC TS 22277:2017
+
|ISO/IEC TS 22277:2017
| Coroutines TS
+
|Coroutines TS
| Published 2017-12-05 ([https://www.iso.org/standard/73008.html ISO Store]). Draft {{stddoc|n4736}} (2018-03-31). Latest draft: {{stddoc|n4775}} (2018-10-07).<br>
+
|Published 2017-12-05 ([https://www.iso.org/standard/73008.html ISO Store]). Draft: {{stddoc|n4736}} (2018-03-31). Latest draft: {{stddoc|n4775}} (2018-10-07).<br>
 
{{mark_ok}}[[cpp/coroutine|Merged into C++20]].
 
{{mark_ok}}[[cpp/coroutine|Merged into C++20]].
|
+
|{{header|coroutine}}
 
|-
 
|-
| ISO/IEC TS 19216:2018
+
|ISO/IEC TS 19216:2018
| Networking TS
+
|Networking TS
| Published 2018-04-24 ([https://www.iso.org/standard/64030.html ISO Store]). Draft {{stddoc|n4734}} (2017-04-04). Latest draft: {{stddoc|n4771}} (2018-10-08).
+
|Published 2018-04-24 ([https://www.iso.org/standard/64030.html ISO Store]). Draft: {{stddoc|n4734}} (2017-04-04). Latest draft: {{stddoc|n4771}} (2018-10-08).
| {{rl|networking}}
+
{{cot|See also non-TS proposals}}
 +
* Standard Secure Networking - {{stddoc|P2586R0}} (2022-09-13)
 +
* Sender-Receiver Interface For Networking - {{stddoc|P2762R2}} (2023-10-12)
 +
{{cob}}
 +
|{{rl|networking|Networking}}
 
|-
 
|-
| ISO/IEC TS 21544:2018
+
|ISO/IEC TS 21544:2018
| Modules TS
+
|Modules TS
| Published 2018-05-16 ([https://www.iso.org/standard/71051.html ISO Store]). Final Draft {{stddoc|n4720}} (2018-01-29).<br>
+
|Published 2018-05-16 ([https://www.iso.org/standard/71051.html ISO Store]). Final Draft: {{stddoc|n4720}} (2018-01-29).<br>
 
{{mark_ok}}[[cpp/language/modules|Merged into C++20]].
 
{{mark_ok}}[[cpp/language/modules|Merged into C++20]].
 
|
 
|
|-
+
|-id="Parallelism TS Version 2"
| ISO/IEC TS 19570:2018
+
|ISO/IEC TS 19570:2018
| Parallelism TS Version 2
+
|Parallelism TS Version 2
| Published 2018-11-15 ([https://www.iso.org/standard/70588.html ISO Store]). Final draft: {{stddoc|n4793}} (2018-11-26).
+
|Published 2018-11-15 ([https://www.iso.org/standard/70588.html ISO Store]). Final draft: {{stddoc|n4793}} (2018-11-26). Post-publication draft: {{stddoc|n4808}} (2019-03-11). See also non-TS {{tt|std::simd}} proposals [[#SIMD proposals|below]].
Post-publication draft: {{stddoc|n4808}} (2019-03-11).
+
|{{rl|parallelism 2|Parallelism 2}}
| {{rl|parallelism 2}}
+
|-id="Reflection TS"
|-
+
|ISO/IEC TS 23619:2021
| ISO/IEC TS 23619:2021
+
|Reflection TS
| Reflection TS
+
|Published 2021-10-11 ([https://www.iso.org/standard/76425.html ISO store]). Draft: {{stddoc|n4856}} (2020-03-02). See also non-TS proposals [[#Reflection proposals|below]].
| Published 2021-10-11 ([https://www.iso.org/standard/76425.html ISO store]). Draft {{stddoc|n4856}} (2020-03-02). Alternative draft {{stddoc|p1240r2}} (2022-01-15).
+
|{{rl|reflect|Reflection}}
|{{rl|reflect|reflection}}
+
 
|-
 
|-
 
|
 
|
| Numerics
+
|Numerics
| Early development. Draft {{stddoc|p1889r1}} (2019-12-27).
+
|Early development. Draft: {{stddoc|p1889r1}} (2019-12-27).
 
|
 
|
 
|-
 
|-
| ISO/IEC AWI TS 9922
+
|ISO/IEC TS 9922
| Concurrency TS Version 2
+
|Concurrency TS Version 2
| Early development. Draft {{stddoc|n4953}} (2023-05-15).
+
|Published 2024-10-09 ([https://www.iso.org/standard/83630.html ISO Store]). Draft: {{stddoc|n4956}} (2023-07-05).
| {{rl|concurrency 2}}
+
|{{rl|concurrency 2|Concurrency 2}}
 
|-
 
|-
| ISO/IEC AWI TS 19568
+
|ISO/IEC TS 19568:2024
| C++ Extensions for Library Fundamentals, Version 3
+
|C++ Extensions for Library Fundamentals, Version 3
| Early development. Draft {{stddoc|n4948}} (2023-05-08).
+
|Published 2024-08-26 ([https://www.iso.org/standard/86293.html ISO Store]). Draft: {{stddoc|n4948}} (2023-05-08).
| {{rl|lib_extensions_3|library extensions 3}}
+
|{{rl|lib extensions 3|Library extensions 3}}
 
|-
 
|-
| ISO/IEC DTS 12907
+
|ISO/IEC DTS 12907
| Transactional Memory TS, Version 2
+
|Transactional Memory TS, Version 2
| Early development: {{stddoc|n4956}} (2023-07-05).
+
|Early development. Draft: {{stddoc|n4923}} (2022-10-14).
 
|
 
|
 
|-
 
|-
 +
|ISO/IEC NP 19569
 +
|Array Extensions TS
 +
|{{mark_cancel}} Withdrawn. Abandoned draft: {{stddoc|n3820}} (2013-10-10).
 
|
 
|
| Pattern Matching
+
|}
| Early development. Draft {{stddoc|p1371r3}} (2020-09-15).
+
 
|
+
====Non-TS proposals====
 +
{|table class=wikitable
 
|-
 
|-
 +
!Name||Status||Links, Headers
 +
|-
 +
|Linear Algebra
 +
|{{mark ok}}[[cpp/header/linalg|Merged into C++26]]. Proposal: {{stddoc|P1673R13}} (2023-11-10).
 +
{{cot|More proposals:}}
 +
* A proposal to add linear algebra support to the C++ standard library - {{stddoc|P1385R7}} (2022-10-15)
 +
* Evolving a Standard C++ Linear Algebra Library from the {{enwiki|Basic Linear Algebra Subprograms|BLAS}} - {{stddoc|P1674R2}} (2022-05-15)
 +
* Presentation of {{stddoc|P1385R7}} to LEWG at Issaquah 2023 - {{stddoc|P2802R0}} (2023-02-09)
 +
* Fix C++26 by optimizing {{c/core|linalg::conjugated}} for non-complex value types - {{stddoc|P3050R2}} (2024-08-13)
 +
* Fix C++26 by making the {{enwiki|Symmetric matrix|symmetric}} and {{enwiki|Hermitian matrix|Hermitian}} rank-k and rank-2k updates consistent with the {{enwiki|Basic Linear Algebra Subprograms|BLAS}} - {{stddoc|P3371R2}} (2024-10-14)
 +
{{cob}}
 +
|{{header|linalg}}
 +
|-
 +
|{{lc|std::execution}}
 +
|Forwarded to LWG, wording in progress.<br>
 +
{{mark ok}}[[cpp/header/execution|Merged into C++26]]. Proposal: {{stddoc|P2300R10}} (2024-06-28).
 +
{{cot|More proposals:}}
 +
* System execution context - {{stddoc|P2079R5}} (2024-10-16)
 +
* Sender-Receiver Interface for Networking - {{stddoc|P2762R2}} (2023-10-12)
 +
* Member customization points for Senders and Receivers - {{stddoc|P2855R1}} (2024-02-22)
 +
* An Event Model for C++ Executors - {{stddoc|P2882R0}} (2023-05-11)
 +
* Sender Algorithm Customization - {{stddoc|P2999R3}} (2023-12-13)
 +
* {{lc|std::execution}} introduction - {{stddoc|P3090R0}} (2024-02-14)
 +
* A plan for {{lc|std::execution}} for C++26 - {{stddoc|P3109R0}} (2024-02-12)
 +
* Improving diagnostics for Sender expressions - {{stddoc|P3164R0}} (2024-03-01)
 +
* Reconsidering the {{c/core|std::execution::on}} algorithm - {{stddoc|P3175R3}} (2024-06-25)
 +
* {{tt|finally}}, {{tt|write_env}}, and {{tt|unstoppable}} Sender Adaptors - {{stddoc|P3284R1}} (2024-07-16)
 +
* Fixing Lazy Sender Algorithm Customization - {{stddoc|P3303R1}} (2024-06-25)
 +
* A Utility for Creating Execution Environments - {{stddoc|P3325R3}} (2024-07-23)
 +
* When Do You Know {{tt|connect}} Doesn't Throw? - {{stddoc|P3388R0}} (2024-09-10)
 +
* {{c/core|std::execution}} wording fixes - {{stddoc|P3396R0}} (2024-09-16)
 +
* Enabling more efficient stop-token based cancellation of senders - {{stddoc|P3409R0}} (2024-10-16)
 +
* {{tt|system_scheduler}} on Win32, Darwin and Linux - {{stddoc|P3456R0}} (2024-10-15)
 +
* Summarizing {{c/core|std::execution::bulk()}} issues - {{stddoc|P3481R0}} (2024-10-16)
 +
{{cob}}
 +
|{{rl|execution|Execution}}, {{header|execution}}
 +
|-
 +
|{{lc|std::inplace_vector}}
 +
|{{mark ok}}[[cpp/header/inplace_vector|Merged into C++26]]. Proposal: {{stddoc|P0843R14}} (2024-06-26).
 +
{{cot|More proposals:}}
 +
* {{tt|inplace_vector}} - {{stddoc|P0843}}({{stddoc|P0843R7|R7}}) LEWG presentation - {{stddoc|P2925R0}} (2023-06-16)
 +
* A direction for Vector - {{stddoc|P3147R1}} (2024-03-18)
 +
* An allocator-aware {{lc|std::inplace_vector}} - {{stddoc|P3160R2}} (2024-10-15)
 +
{{cob}}
 +
|{{header|inplace_vector}}
 +
|-
 +
|Pattern Matching
 +
|Early development. Draft {{stddoc|P1371R3}} (2020-09-15).
 +
{{cot|More proposals:}}
 +
* Pattern Matching using {{c/core|is}} and {{c/core|as}} - {{stddoc|P2392R3}} (2024-10-16)
 +
* Pattern Matching: {{c/core|match}} expression - {{stddoc|P2688R3}} (2024-10-16)
 +
* {{c/core|switch}} for Pattern Matching - {{stddoc|P2940R0}} (2022-04-18)
 +
* Identifiers for Pattern Matching - {{stddoc|P2941R0}} (2022-02-24)
 +
* A Postcondition ''is'' a Pattern Match - {{stddoc|P3210R2}} (2024-09-10)
 +
* A unified syntax for Pattern Matching and Contracts when introducing a new name - {{stddoc|P3249R0}} (2024-05-22)
 +
* A simpler notation for PM - {{stddoc|P3332R0}} (2024-06-18)
 +
* Slides for P2688R2 - Pattern Matching: {{c/core|match}} Expression - {{stddoc|P3476R0}} (2024-10-16)
 +
{{cob}}
 
|
 
|
| Linear Algebra
+
|-id="Reflection proposals"
| Early development; now targeting mainline standard {{stddoc|p1673r12}} (2023-03-14), {{stddoc|p1674r2}} (2022-05-15), {{stddoc|p1385r7}} (2022-10-15).<br>
+
|Reflection
{{mark_ok}}[[cpp/header/linalg|Merged into C++26]] ({{stddoc|p1673r12}}).
+
|The main document (ISO/IEC TS 23619:2021) is described in {{ls|#Reflection TS}} above.
|
+
{{cot|More proposals:}}
 +
* Scalable Reflection in C++ - {{stddoc|P1240R2}} (2022-01-14)
 +
* Expansion statements - {{stddoc|P1306R3}} (2024-10-14)
 +
* Reflection on attributes - {{stddoc|P1887R1}} (2020-01-13)
 +
* Metaprogramming - {{stddoc|P2237R0}} (2020-10-15)
 +
* Python Bindings with Value-Based Reflection - {{stddoc|P2911R1}} (2023-10-13)
 +
* Reflection for C++26 - {{stddoc|P2996R7}} (2024-10-13)
 +
* Using Reflection to Replace a Metalanguage for Generating JS Bindings - {{stddoc|P3010R0}} (2023-10-13)
 +
* ABI comparison with reflection - {{stddoc|P3095R0}} (2024-02-15)
 +
* Function Parameter Reflection in Reflection for C++26 - {{stddoc|P3096R3}} (2024-09-15)
 +
* Generative Extensions for Reflection - {{stddoc|P3157R1}} (2024-05-22)
 +
* Syntax for Reflection - {{stddoc|P3381R0}} (2024-09-17)
 +
* Attributes reflection - {{stddoc|P3385R1}} (2024-10-15)
 +
* Annotations for Reflection - {{stddoc|P3394R0}} (2024-10-14)
 +
* Reflection Syntax Options Summary - {{stddoc|P3419R0}} (2024-10-11)
 +
* Reflection of Templates - {{stddoc|P3420R0}} (2024-10-16)
 +
* Reflection header should minimize standard library dependencies - {{stddoc|P3429R0}} (2024-10-16)
 +
* Reflection and meta-programming - {{stddoc|P3435R0}} (2024-10-14)
 +
* Proposed default principles: Reflect C++, Generate C++ - {{stddoc|P3437R0}} (2024-10-16)
 +
* Reflection on SG21 2024 Process - {{stddoc|P3443R0}} (2024-10-14)
 +
* A Suggestion for Reflection Access Control - {{stddoc|P3451R0}} (2024-10-15)
 +
{{cob}}
 +
| {{rl|reflect|Reflection}}
 +
|-id="SIMD proposals"
 +
|{{rlt|simd|std::simd}}
 +
|The main document (TS ISO/IEC 19570:2018) is described in [[#Parallelism TS Version 2|"C++ Extensions for Parallelism V2"]] above.
 +
{{cot|More proposals:}}
 +
* Expected Feedback from SIMD in Parallelism TS2 - {{stddoc|P1915R0}} (2019-10-07)
 +
* {{rlt|simd|std::simd}} - Merge data-parallel types from the Parallelism TS 2 - {{stddoc|P1928R12}} (2024-10-11)
 +
* Intel's response to {{rlt|simd|std::simd}} - {{stddoc|P2638R0}} (2022-09-22)
 +
* Proposal to support interleaved complex values in {{rlt|simd|std::simd}} - {{stddoc|P2663R5}} (2023-12-08)
 +
* Proposal to extend {{rlt|simd|std::simd}} with permutation API - {{stddoc|P2664R8}} (2024-10-15)
 +
* {{rlt|simd|std::simd}} Intro slides - {{stddoc|P2803R0}} (2023-02-09)
 +
* Issaquah Slides for Intel response to {{rlt|simd|std::simd}} - {{stddoc|P2807R0}} (2023-02-10)
 +
* Proposal to extend {{rlt|simd|std::simd}} with more constructors and accessors - {{stddoc|P2876R1}} (2024-05-22)
 +
* Algorithm-like vs {{rlt|simd|std::simd}} based RNG API - {{stddoc|P2880R0}} (2023-05-18)
 +
* {{rlt|simd|std::simd}} types should be regular - {{stddoc|P2892R0}} (2023-05-19)
 +
* {{rlt|simd|std::simd}} types should be regular - {{stddoc|P2892R0}} LEWG presentation - {{stddoc|P2926R0}} (2023-06-19)
 +
* {{tt|simd_invoke}} - {{stddoc|P2929R0}} (2023-07-19)
 +
* {{rlt|simd|std::simd}} overloads for {{header|bit}} - {{stddoc|P2933R2}} (2024-10-16)
 +
* Add saturating library support to {{rlt|simd|std::simd}} - {{stddoc|P2956R0}} (2023-08-01)
 +
* Allowing user-defined types in {{rlt|simd|std::simd}} - {{stddoc|P2964R1}} (2024-05-22)
 +
* Interface Directions for {{rlt|simd|std::simd}} - {{stddoc|P3024R0}} (2023-11-30)
 +
* Provide predefined {{rlt|simd|std::simd}} permute generator functions for common operations - {{stddoc|P3067R0}} (2024-05-22)
 +
* Replace {{rlt|simd|std::simd}} {{c/core|operator[]}} with getter and setter functions - or not - {{stddoc|P3275R0}} (2024-05-22)
 +
* Exploration of namespaces for {{rlt|simd|std::simd}} - {{stddoc|P3287R1}} (2024-10-15)
 +
* Range constructors for {{rlt|simd|std::simd}} - {{stddoc|P3299R2}} (2024-10-16)
 +
* Add an {{tt|iota}} object for {{rlt|simd|std::simd}} (and more) - {{stddoc|P3319R1}} (2024-06-28)
 +
* {{rlt|simd|std::simd}} issues: explicit, unsequenced, identity-element position, and members of disabled simd - {{stddoc|P3430R0}} (2024-10-15)
 +
* Add {{tt|n_elements}} named constructor to {{rlt|simd|std::simd}} - {{stddoc|P3440R0}} (2024-10-15)
 +
* Rename {{tt|simd_split}} to {{tt|simd_chunk}} - {{stddoc|P3441R0}} (2024-10-15)
 +
* Add utilities for easier type-bit casting in {{rlt|simd|std::simd}} - {{stddoc|P3445R0}} (2024-10-16)
 +
* {{rlt|simd|std::simd}} is a {{lconcept|range}} - {{stddoc|P3480R0}} (2024-10-16)
 +
{{cob}}
 +
|{{rl|simd|Data parallel types}}
 
|-
 
|-
|
+
|Contracts
| Contracts
+
|Early development. Proposal {{stddoc|P2659R2}} (2022-11-30). Draft {{stddoc|P2660R0}} (2022-10-14).
| Early development. Proposal {{stddoc|p2659r2}} (2022-11-30). Draft {{stddoc|p2660r0}} (2022-10-14).  
+
{{cot|More proposals:}}
 +
* A Proposal to Publish a Technical Specification for Contracts - {{stddoc|P2659R2}} (2022-12-05)
 +
* Miscellaneous amendments to the Contracts TS - {{stddoc|P2661R0}} (2022-10-15)
 +
* Contracts for C++: Prioritizing Safety - {{stddoc|P2680R1}} (2022-12-15)
 +
* A proposed plan for contracts in C++ - {{stddoc|P2695R1}} (2023-02-09)
 +
* Proposal of Condition-centric Contracts Syntax - {{stddoc|P2737R0}} (2022-12-30)
 +
* Contracts for C++: Prioritizing Safety - Presentation slides - {{stddoc|P2743R0}} (2022-12-13)
 +
* Evaluation of Checked Contracts - {{stddoc|P2751R1}} (2023-02-14)
 +
* A Bold Plan for a Complete Contracts Facility - {{stddoc|P2755R1}} (2024-04-11)
 +
* The idea behind the contracts MVP - {{stddoc|P2817R0}} (2023-03-05)
 +
* Proposal of Contracts Supporting Const-On-Definition Style - {{stddoc|P2829R0}} (2023-04-13)
 +
* Contract violation handling semantics for the contracts MVP - {{stddoc|P2852R0}} (2023-04-24)
 +
* The Lakos Rule: Narrow Contracts and {{c/core|noexcept}} Are Inherently Incompatible - {{stddoc|P2861R0}} (2023-05-19)
 +
* Requirements for a Contracts syntax - {{stddoc|P2885R3}} (2023-10-05)
 +
* Contracts on lambdas - {{stddoc|P2890R2}} (2023-12-13)
 +
* Constant evaluation of Contracts - {{stddoc|P2894R2}} (2024-01-11)
 +
* Outstanding design questions for the Contracts MVP - {{stddoc|P2896R0}} (2023-08-22)
 +
* Contracts for C++ - {{stddoc|P2900R10}} (2024-10-13)
 +
* A Principled Approach to Open Design Questions for Contracts - {{stddoc|P2932R3}} (2024-01-16)
 +
* An Attribute-Like Syntax for Contracts - {{stddoc|P2935R4}} (2023-11-05)
 +
* Contracts must avoid disclosing sensitive information - {{stddoc|P2947R0}} (2023-07-20)
 +
* Slides for {{stddoc|P2861R0}}: Narrow Contracts and {{c/core|noexcept}} are Inherently Incompatible - {{stddoc|P2949R0}} (2023-07-14)
 +
* Contracts and virtual functions for the Contracts MVP - {{stddoc|P2954R0}} (2023-08-03)
 +
* Contracts and coroutines - {{stddoc|P2957R2}} (2024-10-14)
 +
* A natural syntax for Contracts - {{stddoc|P2961R2}} (2023-11-08)
 +
* An Overview of Syntax Choices for Contracts - {{stddoc|P3028R0}} (2023-11-05)
 +
* Protection against modifications in contracts - {{stddoc|P3071R1}} (2023-12-17)
 +
* Remove {{tt|evaluation_undefined_behavior}} and {{tt|will_continue}} from the Contracts MVP - {{stddoc|P3073R0}} (2024-01-27)
 +
* Should {{tt|ignore}} and {{tt|observe}} exist for constant evaluation of contracts? - {{stddoc|P3079R0}} (2024-01-11)
 +
* Contracts for C++: Support for virtual functions - {{stddoc|P3097R0}} (2024-04-15)
 +
* Contracts for C++: Postcondition captures - {{stddoc|P3098R0}} (2024-10-14)
 +
* Undefined and erroneous behavior are contract violations - {{stddoc|P3100R1}} (2024-10-16)
 +
* Tokyo Technical Fixes to Contracts - {{stddoc|P3119R1}} (2024-05-09)
 +
* Contracts on virtual functions for the Contracts MVP - {{stddoc|P3165R0}} (2024-02-27)
 +
* Inherited contracts - {{stddoc|P3169R0}} (2024-04-14)
 +
* Contract testing support - {{stddoc|P3183R1}} (2024-05-22)
 +
* Slides for LEWG presentation of {{stddoc|P2900R6}}: Contracts for C++ - {{stddoc|P3189R0}} (2024-03-19)
 +
* Slides for LEWG presentation of {{stddoc|P2900R7}}: Contracts for C++ - {{stddoc|P3190R0}} (2024-03-20)
 +
* A response to the Tokyo EWG polls  on the Contracts MVP ({{stddoc|P2900R6}}) - {{stddoc|P3197R0}} (2024-04-12)
 +
* A takeaway from the Tokyo LEWG meeting on Contracts MVP - {{stddoc|P3198R0}} (2024-03-29)
 +
* The contract of {{lc|std::sort|sort()}} - {{stddoc|P3212R0}} (2024-07-03)
 +
* Contracts for C++: Naming the ''Louis semantic'' - {{stddoc|P3226R0}} (2024-04-12)
 +
* Contracts for C++: Fixing the contract violation handling API - {{stddoc|P3227R0}} (2024-10-16)
 +
* Contracts for C++: Revisiting contract check elision and duplication - {{stddoc|P3228R1}} (2024-05-21)
 +
* An alternate proposal for naming contract semantics - {{stddoc|P3238R0}} (2024-05-06)
 +
* A unified syntax for Pattern Matching and Contracts when introducing a new name - {{stddoc|P3249R0}} (2024-05-22)
 +
* C++ contracts with regards to function pointers - {{stddoc|P3250R0}} (2024-05-07)
 +
* C++ contracts and coroutines - {{stddoc|P3251R0}} (2024-05-07)
 +
* Make the predicate of {{tt|contract_assert}} more regular - {{stddoc|P3257R0}} (2024-04-26)
 +
* Ship Contracts in a TS - {{stddoc|P3265R3}} (2024-05-28)
 +
* Approaches to C++ Contracts - {{stddoc|P3267R1}} (2024-05-22)
 +
* C++ Contracts Constification Challenges Concerning Current Code - {{stddoc|P3268R0}} (2024-05-07)
 +
* Do Not Ship Contracts as a TS - {{stddoc|P3269R0}} (2024-05-21)
 +
* Repetition, Elision, and Constification w.r.t. {{tt|contract_assert}} - {{stddoc|P3270R0}} (2024-05-22)
 +
* Function Usage Types (Contracts for Function Pointers) - {{stddoc|P3271R1}} (2024-10-15)
 +
* {{stddoc|P2900}} Is Superior to a Contracts TS - {{stddoc|P3276R0}} (2024-05-18)
 +
* Contracts: Protecting The Protector - {{stddoc|P3285R0}} (2024-05-15)
 +
* Integrating Existing Assertions With Contracts - {{stddoc|P3290R2}} (2024-09-06)
 +
* C++26 Needs Contract Checking - {{stddoc|P3297R1}} (2024-06-21)
 +
* An opt-in approach for integration of traditional assert facilities in C++ contracts - {{stddoc|P3311R0}} (2024-05-22)
 +
* Compile time resolved contracts - {{stddoc|P3317R0}} (2024-05-22)
 +
* Contracts Interaction With Tooling - {{stddoc|P3321R0}} (2024-07-12)
 +
* Contract assertions on function pointers - {{stddoc|P3327R0}} (2024-10-16)
 +
* Observable Checkpoints During Contract Evaluation - {{stddoc|P3328R0}} (2024-06-14)
 +
* Usage Experience for Contracts with BDE - {{stddoc|P3336R0}} (2024-06-23)
 +
* Contracts - What are we doing here (EWG Presentation) - {{stddoc|P3343R0}} (2024-06-25)
 +
* Virtual Functions on Contracts (EWG - Presentation for {{stddoc|P3097}}) - {{stddoc|P3344R0}} (2024-06-28)
 +
* Class invariants and contract checking philosophy - {{stddoc|P3361R1}} (2024-07-23)
 +
* Static analysis and “safety” of Contracts, {{stddoc|P2900}} vs {{stddoc|P2680}}/{{stddoc|P3285}} - {{stddoc|P3362R0}} (2024-08-13)
 +
* Contract assertions versus static analysis and “safety” - {{stddoc|P3376R0}} (2024-10-14)
 +
* Static Analysis of Contracts with P2900 - {{stddoc|P3386R0}} (2024-10-15)
 +
* Contract assertions on coroutines - {{stddoc|P3387R0}} (2024-10-09)
 +
* Improving the handling of exceptions thrown from contract predicates - {{stddoc|P3417R0}} (2024-10-16)
 +
* Contracts Implementors Report - {{stddoc|P3460R0}} (2024-10-16)
 +
* Standard library hardening - {{stddoc|P3471R0}} (2024-10-16)
 +
* Constification should not be part of the MVP ('''M'''inimal '''V'''iable '''P'''roduct) - {{stddoc|P3478R0}} (2024-10-16)
 +
{{cob}}
 
|
 
|
 
|-
 
|-
|
+
|2D Graphics
| 2D Graphics
+
|Early development. Draft {{stddoc|P0267R10}} (2019-10-07).
| Early development. Draft {{stddoc|p0267r10}} (2019-10-07).
+
 
|
 
|
 
|-
 
|-
| ISO/IEC NP 19569
+
|Graph Library
| Array Extensions TS
+
|Early development.
| {{mark_cancel}} Withdrawn. Abandoned draft: {{stddoc|n3820}} (2013-10-10).
+
{{cot|More proposals:}}
 +
* Graph Library: Overview - {{stddoc|P3126R2}} (2024-08-05)
 +
* Graph Library: Algorithms - {{stddoc|P3128R2}} (2024-09-12)
 +
* Graph Library: Graph Container Interface - {{stddoc|P3130R2}} (2024-08-05)
 +
* Graph Library: Graph Containers - {{stddoc|P3131R2}} (2024-08-05)
 +
{{cob}}
 
|
 
|
 
|}
 
|}
Line 161: Line 361:
 
===See also===
 
===See also===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc see c | c/experimental | Experimental C features | nomono=true}}
+
{{dsc see c|c/experimental|Experimental C features|nomono=true}}
 
{{dsc end}}
 
{{dsc end}}
 +
 +
===External links===
 +
{{elink begin}}
 +
{{elink|num=1|[https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/sd-1.htm PL22.16/WG21 document list] - All C++ committee documents (TS/proposals) for 2016-{{CURRENTYEAR}}.}}
 +
{{elink|num=2|[https://www.open-std.org/jtc1/sc22/wg21/docs/papers/{{CURRENTYEAR}}/ JTC1/SC22/WG21 Proposals (mailing) for {{CURRENTYEAR}}].}}
 +
{{elink end}}
  
 
{{langlinks|de|es|ja|ru|zh}}
 
{{langlinks|de|es|ja|ru|zh}}

Latest revision as of 00:18, 6 November 2024

The C++ standards committee publishes experimental C++ language and library extensions for future standardization.

Note: until 2012, these publications used the TR (technical report) format. Since 2012 ISO procedure changed to use the TS (technical specification) format.

Contents

[edit] TR/TS specifications

ISO number Name Status Links, headers
ISO/IEC TR 18015:2006 Technical Report on C++ Performance Published 2006 (ISO store).

Draft: TR18015 (2006-02-15).

ISO/IEC TR 19768:2007 Technical Report on C++ Library Extensions Published 2007-11-15 (ISO store).

Draft: N1836 (2005-06-24)
ISO 29124 split off, the rest merged into C++11.

ISO/IEC 29124:2010 Extensions to the C++ Library to support mathematical special functions Published 2010-09-03 (ISO Store).

Final draft: N3060 (2010-03-06).
Merged into C++17.

Special functions
ISO/IEC TR 24733:2011 Extensions for the programming language C++ to support decimal floating-point arithmetic Published 2011-10-25 (ISO Store)

Draft: N2849 (2009-03-06).
May be superseded by a future TS or merged into a future revision of C++ (most recent merge proposal was N3871).

ISO/IEC TS 18822:2015 C++ File System Technical Specification Published 2015-06-18 (ISO store). Final draft: N4100 (2014-07-04).

Merged into C++17.

Filesystem, <filesystem>
ISO/IEC TS 19570:2015 C++ Extensions for Parallelism Published 2015-06-24. (ISO Store). Final draft: N4507 (2015-05-05).

Merged into C++17.

Parallelism
ISO/IEC TS 19841:2015 Transactional Memory TS Published 2015-09-16, (ISO Store). Final draft: N4514 (2015-05-08). Transactional memory
ISO/IEC TS 19568:2015 C++ Extensions for Library Fundamentals Published 2015-09-30, (ISO Store). Final draft: N4480 (2015-04-07).

Merged into C++17 except for invocation traits.

Library extensions
ISO/IEC TS 19217:2015 C++ Extensions for Concepts Published 2015-11-13 (ISO Store). Final draft: N4553 (2015-10-02). Current draft: P0734R0 (2017-07-14).

Merged into C++20 (with modifications).

Constraints and concepts, <concepts>
ISO/IEC TS 19571:2016 C++ Extensions for Concurrency Published 2016-01-19 (ISO Store). Final draft: P0159R0 (2015-10-22).

Partially merged into C++20.

Concurrency
ISO/IEC TS 19568:2017 C++ Extensions for Library Fundamentals, Version 2 Published 2017-03-30 (ISO Store). Draft: N4617 (2016-11-28).

Partially merged into C++17 and C++20.

Library extensions 2
ISO/IEC TS 21425:2017 Ranges TS Published 2017-12-05 (ISO Store). Draft: N4685 (2017-07-31).

Merged into C++20.

Ranges, <ranges>
ISO/IEC TS 22277:2017 Coroutines TS Published 2017-12-05 (ISO Store). Draft: N4736 (2018-03-31). Latest draft: N4775 (2018-10-07).

Merged into C++20.

<coroutine>
ISO/IEC TS 19216:2018 Networking TS Published 2018-04-24 (ISO Store). Draft: N4734 (2017-04-04). Latest draft: N4771 (2018-10-08).
See also non-TS proposals
  • Standard Secure Networking - P2586R0 (2022-09-13)
  • Sender-Receiver Interface For Networking - P2762R2 (2023-10-12)
Networking
ISO/IEC TS 21544:2018 Modules TS Published 2018-05-16 (ISO Store). Final Draft: N4720 (2018-01-29).

Merged into C++20.

ISO/IEC TS 19570:2018 Parallelism TS Version 2 Published 2018-11-15 (ISO Store). Final draft: N4793 (2018-11-26). Post-publication draft: N4808 (2019-03-11). See also non-TS std::simd proposals below. Parallelism 2
ISO/IEC TS 23619:2021 Reflection TS Published 2021-10-11 (ISO store). Draft: N4856 (2020-03-02). See also non-TS proposals below. Reflection
Numerics Early development. Draft: P1889R1 (2019-12-27).
ISO/IEC TS 9922 Concurrency TS Version 2 Published 2024-10-09 (ISO Store). Draft: N4956 (2023-07-05). Concurrency 2
ISO/IEC TS 19568:2024 C++ Extensions for Library Fundamentals, Version 3 Published 2024-08-26 (ISO Store). Draft: N4948 (2023-05-08). Library extensions 3
ISO/IEC DTS 12907 Transactional Memory TS, Version 2 Early development. Draft: N4923 (2022-10-14).
ISO/IEC NP 19569 Array Extensions TS × Withdrawn. Abandoned draft: N3820 (2013-10-10).

[edit] Non-TS proposals

Name Status Links, Headers
Linear Algebra Merged into C++26. Proposal: P1673R13 (2023-11-10).
More proposals:
  • 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 - P3050R2 (2024-08-13)
  • Fix C++26 by making the symmetric and Hermitian rank-k and rank-2k updates consistent with the BLAS - P3371R2 (2024-10-14)
<linalg>
std::execution Forwarded to LWG, wording in progress.

Merged into C++26. Proposal: P2300R10 (2024-06-28).

More proposals:
  • System execution context - P2079R5 (2024-10-16)
  • 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 - P3164R0 (2024-03-01)
  • Reconsidering the std::execution::on algorithm - P3175R3 (2024-06-25)
  • finally, write_env, and unstoppable Sender Adaptors - P3284R1 (2024-07-16)
  • Fixing Lazy Sender Algorithm Customization - P3303R1 (2024-06-25)
  • A Utility for Creating Execution Environments - P3325R3 (2024-07-23)
  • When Do You Know connect Doesn't Throw? - P3388R0 (2024-09-10)
  • std::execution wording fixes - P3396R0 (2024-09-16)
  • Enabling more efficient stop-token based cancellation of senders - P3409R0 (2024-10-16)
  • system_scheduler on Win32, Darwin and Linux - P3456R0 (2024-10-15)
  • Summarizing std::execution::bulk() issues - P3481R0 (2024-10-16)
Execution, <execution>
std::inplace_vector Merged into C++26. Proposal: P0843R14 (2024-06-26).
More proposals:
  • inplace_vector - P0843(R7) LEWG presentation - P2925R0 (2023-06-16)
  • A direction for Vector - P3147R1 (2024-03-18)
  • An allocator-aware std::inplace_vector - P3160R2 (2024-10-15)
<inplace_vector>
Pattern Matching Early development. Draft P1371R3 (2020-09-15).
More proposals:
  • Pattern Matching using is and as - P2392R3 (2024-10-16)
  • Pattern Matching: match expression - P2688R3 (2024-10-16)
  • switch for Pattern Matching - P2940R0 (2022-04-18)
  • Identifiers for Pattern Matching - P2941R0 (2022-02-24)
  • A Postcondition is a Pattern Match - P3210R2 (2024-09-10)
  • A unified syntax for Pattern Matching and Contracts when introducing a new name - P3249R0 (2024-05-22)
  • A simpler notation for PM - P3332R0 (2024-06-18)
  • Slides for P2688R2 - Pattern Matching: match Expression - P3476R0 (2024-10-16)
Reflection The main document (ISO/IEC TS 23619:2021) is described in Reflection TS above.
More proposals:
  • Scalable Reflection in C++ - P1240R2 (2022-01-14)
  • Expansion statements - P1306R3 (2024-10-14)
  • Reflection on attributes - P1887R1 (2020-01-13)
  • Metaprogramming - P2237R0 (2020-10-15)
  • Python Bindings with Value-Based Reflection - P2911R1 (2023-10-13)
  • Reflection for C++26 - P2996R7 (2024-10-13)
  • Using Reflection to Replace a Metalanguage for Generating JS Bindings - P3010R0 (2023-10-13)
  • ABI comparison with reflection - P3095R0 (2024-02-15)
  • Function Parameter Reflection in Reflection for C++26 - P3096R3 (2024-09-15)
  • Generative Extensions for Reflection - P3157R1 (2024-05-22)
  • Syntax for Reflection - P3381R0 (2024-09-17)
  • Attributes reflection - P3385R1 (2024-10-15)
  • Annotations for Reflection - P3394R0 (2024-10-14)
  • Reflection Syntax Options Summary - P3419R0 (2024-10-11)
  • Reflection of Templates - P3420R0 (2024-10-16)
  • Reflection header should minimize standard library dependencies - P3429R0 (2024-10-16)
  • Reflection and meta-programming - P3435R0 (2024-10-14)
  • Proposed default principles: Reflect C++, Generate C++ - P3437R0 (2024-10-16)
  • Reflection on SG21 2024 Process - P3443R0 (2024-10-14)
  • A Suggestion for Reflection Access Control - P3451R0 (2024-10-15)
Reflection
std::simd The main document (TS ISO/IEC 19570:2018) is described in "C++ Extensions for Parallelism V2" above.
More proposals:
Data parallel types
Contracts Early development. Proposal P2659R2 (2022-11-30). Draft P2660R0 (2022-10-14).
More proposals:
  • A Proposal to Publish a Technical Specification for Contracts - P2659R2 (2022-12-05)
  • 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++ - P2900R10 (2024-10-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 - P3098R0 (2024-10-14)
  • 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)
  • 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 - P3227R0 (2024-10-16)
  • Contracts for C++: Revisiting contract check elision and duplication - P3228R1 (2024-05-21)
  • 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)
  • Static analysis and “safety” of Contracts, P2900 vs P2680/P3285 - P3362R0 (2024-08-13)
  • Contract assertions versus static analysis and “safety” - P3376R0 (2024-10-14)
  • Static Analysis of Contracts with P2900 - P3386R0 (2024-10-15)
  • Contract assertions on coroutines - P3387R0 (2024-10-09)
  • Improving the handling of exceptions thrown from contract predicates - P3417R0 (2024-10-16)
  • Contracts Implementors Report - P3460R0 (2024-10-16)
  • Standard library hardening - P3471R0 (2024-10-16)
  • Constification should not be part of the MVP (Minimal Viable Product) - P3478R0 (2024-10-16)
2D Graphics Early development. Draft P0267R10 (2019-10-07).
Graph Library Early development.
More proposals:
  • Graph Library: Overview - P3126R2 (2024-08-05)
  • Graph Library: Algorithms - P3128R2 (2024-09-12)
  • Graph Library: Graph Container Interface - P3130R2 (2024-08-05)
  • Graph Library: Graph Containers - P3131R2 (2024-08-05)

[edit] See also

C documentation for Experimental C features

[edit] External links

1.  PL22.16/WG21 document list - All C++ committee documents (TS/proposals) for 2016-2024.
2.  JTC1/SC22/WG21 Proposals (mailing) for 2024.