Difference between revisions of "cpp/experimental"
m (+more non-TS proposals on Reflection.) |
m (Shorter relative links with {{rl}}. Capitalized rightmost columns.) |
||
Line 9: | Line 9: | ||
{|table class=wikitable | {|table class=wikitable | ||
|- | |- | ||
− | !ISO number||Name||Status|| | + | !ISO number||Name||Status||Links |
|- | |- | ||
|ISO/IEC TR 18015:2006 | |ISO/IEC TR 18015:2006 | ||
Line 29: | Line 29: | ||
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 | ||
Line 42: | Line 42: | ||
|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| | + | |{{rl|fs|Filesystem}} |
|- | |- | ||
|ISO/IEC TS 19570:2015 | |ISO/IEC TS 19570:2015 | ||
Line 48: | Line 48: | ||
|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| | + | |[[cpp/language/transactional_memory|Transactional memory]] |
|- | |- | ||
|ISO/IEC TS 19568:2015 | |ISO/IEC TS 19568:2015 | ||
Line 59: | Line 59: | ||
|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| | + | |{{rl|lib_extensions|Library extensions}} |
|- | |- | ||
|ISO/IEC TS 19217:2015 | |ISO/IEC TS 19217:2015 | ||
Line 65: | Line 65: | ||
|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| | + | |{{rl|constraints|Constraints and concepts}} |
|- | |- | ||
|ISO/IEC TS 19571:2016 | |ISO/IEC TS 19571:2016 | ||
Line 71: | Line 71: | ||
|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 | ||
Line 77: | Line 77: | ||
|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| | + | |{{rl|lib_extensions_2|Library extensions 2}} |
|- | |- | ||
|ISO/IEC TS 21425:2017 | |ISO/IEC TS 21425:2017 | ||
Line 83: | Line 83: | ||
|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}} |
|- | |- | ||
|ISO/IEC TS 22277:2017 | |ISO/IEC TS 22277:2017 | ||
Line 94: | Line 94: | ||
|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}} | + | |{{rl|networking|Networking}} |
|- | |- | ||
|ISO/IEC TS 21544:2018 | |ISO/IEC TS 21544:2018 | ||
Line 106: | Line 106: | ||
|Published 2018-11-15 ([https://www.iso.org/standard/70588.html ISO Store]). Final draft: {{stddoc|n4793}} (2018-11-26). See also non-TS {{tt|std::simd}} proposals [[#SIMD proposals|below]]. | |Published 2018-11-15 ([https://www.iso.org/standard/70588.html ISO Store]). Final draft: {{stddoc|n4793}} (2018-11-26). See also non-TS {{tt|std::simd}} proposals [[#SIMD proposals|below]]. | ||
Post-publication draft: {{stddoc|n4808}} (2019-03-11). | Post-publication draft: {{stddoc|n4808}} (2019-03-11). | ||
− | |{{rl|parallelism 2}} | + | |{{rl|parallelism 2|Parallelism 2}} |
|-id="Reflection TS" | |-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). See also non-TS proposals [[#Reflection proposals|below]]. | ||
− | |{{rl|reflect| | + | |{{rl|reflect|Reflection}} |
|- | |- | ||
| | | | ||
Line 121: | Line 121: | ||
|Concurrency TS Version 2 | |Concurrency TS Version 2 | ||
|Early development: {{stddoc|n4956}} (2023-07-05). | |Early development: {{stddoc|n4956}} (2023-07-05). | ||
− | |{{rl|concurrency 2}} | + | |{{rl|concurrency 2|Concurrency 2}} |
|- | |- | ||
|ISO/IEC AWI TS 19568 | |ISO/IEC AWI TS 19568 | ||
|C++ Extensions for Library Fundamentals, Version 3 | |C++ Extensions for Library Fundamentals, Version 3 | ||
|Early development. Draft {{stddoc|n4948}} (2023-05-08). | |Early development. Draft {{stddoc|n4948}} (2023-05-08). | ||
− | |{{rl| | + | |{{rl|lib extensions 3|Library extensions 3}} |
|- | |- | ||
|ISO/IEC DTS 12907 | |ISO/IEC DTS 12907 | ||
Line 142: | Line 142: | ||
{|table class=wikitable | {|table class=wikitable | ||
|- | |- | ||
− | !Name||Status|| | + | !Name||Status||Links |
|- | |- | ||
|Linear Algebra | |Linear Algebra | ||
Line 160: | Line 160: | ||
* Improving diagnostics for Sender expressions - {{stddoc|P3164R0}} (2024-03-01). | * Improving diagnostics for Sender expressions - {{stddoc|P3164R0}} (2024-03-01). | ||
* Reconsidering the {{c|std::execution::on}} algorithm - {{stddoc|P3175R0}} (2024-03-14). | * Reconsidering the {{c|std::execution::on}} algorithm - {{stddoc|P3175R0}} (2024-03-14). | ||
− | |{{rl|execution| | + | |{{rl|execution|Execution}} |
|- | |- | ||
|Pattern Matching | |Pattern Matching | ||
Line 180: | Line 180: | ||
* Function Parameter Reflection in Reflection for C++26 - {{stddoc|P3096R0}} (2024-02-14) | * Function Parameter Reflection in Reflection for C++26 - {{stddoc|P3096R0}} (2024-02-14) | ||
* Generative Extensions for Reflection - {{stddoc|P3157R0}} (2024-02-15) | * Generative Extensions for Reflection - {{stddoc|P3157R0}} (2024-02-15) | ||
− | | | + | | {{rl|reflect|Reflection}} |
|-id="SIMD proposals" | |-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. See also: | |The main document (TS ISO/IEC 19570:2018) is described in [[#Parallelism TS Version 2|"C++ Extensions for Parallelism V2"]] above. See also: | ||
* Expected Feedback from SIMD in Parallelism TS2 - {{stddoc|P1915R0}} (2019-10-07), | * 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|P1928R8}} (2023-11-09), |
− | * Intel's response to {{ | + | * Intel's response to {{rlt|simd|std::simd}} - {{stddoc|P2638R0}} (2022-09-22), |
− | * Proposal to support interleaved complex values in {{ | + | * Proposal to support interleaved complex values in {{rlt|simd|std::simd}} - {{stddoc|P2663R5}} (2023-12-08), |
− | * Proposal to extend {{ | + | * Proposal to extend {{rlt|simd|std::simd}} with permutation API - {{stddoc|P2664R6}} (2024-01-16), |
− | * {{ | + | * {{rlt|simd|std::simd}} Intro slides - {{stddoc|P2803R0}} (2023-02-09), |
− | * Issaquah Slides for Intel response to {{ | + | * Issaquah Slides for Intel response to {{rlt|simd|std::simd}} - {{stddoc|P2807R0}} (2023-02-10), |
− | * Proposal to extend {{ | + | * Proposal to extend {{rlt|simd|std::simd}} with more constructors and accessors - {{stddoc|P2876R0}} (2023-05-18), |
− | * Algorithm-like vs {{ | + | * 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), | * {{tt|simd_invoke}} - {{stddoc|P2929R0}} (2023-07-19), | ||
− | * {{ | + | * {{rlt|simd|std::simd}} overloads for {{header|bit}} - {{stddoc|P2933R1}} (2023-12-08), |
− | * Add saturating library support to {{ | + | * Add saturating library support to {{rlt|simd|std::simd}} - {{stddoc|P2956R0}} (2023-08-01), |
− | * Allowing user-defined types in {{ | + | * Allowing user-defined types in {{rlt|simd|std::simd}} - {{stddoc|P2964R0}} (2024-02-09), |
− | * Interface Directions for {{ | + | * Interface Directions for {{rlt|simd|std::simd}} - {{stddoc|P3024R0}} (2023-11-30). |
− | | | + | |{{rl|parallelism 2|Data parallel types}} |
|- | |- | ||
|Contracts | |Contracts |
Revision as of 00:44, 22 May 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.
TR/TS specifications
ISO number | Name | Status | Links |
---|---|---|---|
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/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). |
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). |
|
ISO/IEC TS 18822:2015 | C++ File System Technical Specification | Published 2015-06-18 (ISO store). Final draft: N4100 (2014-07-04). |
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 |
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). |
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). |
|
ISO/IEC TS 19216:2018 | Networking TS | Published 2018-04-24 (ISO Store). Draft N4734 (2017-04-04). Latest draft: N4771 (2018-10-08). | Networking |
ISO/IEC TS 21544:2018 | Modules TS | Published 2018-05-16 (ISO Store). Final Draft N4720 (2018-01-29). |
|
ISO/IEC TS 19570:2018 | Parallelism TS Version 2 | Published 2018-11-15 (ISO Store). Final draft: N4793 (2018-11-26). See also non-TS std::simd proposals below.
Post-publication draft: N4808 (2019-03-11). |
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 AWI TS 9922 | Concurrency TS Version 2 | Early development: N4956 (2023-07-05). | Concurrency 2 |
ISO/IEC AWI TS 19568 | C++ Extensions for Library Fundamentals, Version 3 | Early development. Draft N4948 (2023-05-08). | Library extensions 3 |
ISO/IEC DTS 12907 | Transactional Memory TS, Version 2 | Early development: N4923 (2022-10-14). | |
ISO/IEC NP 19569 | Array Extensions TS | × Withdrawn. Abandoned draft: N3820 (2013-10-10). |
Non-TS proposals
Name | Status | Links |
---|---|---|
Linear Algebra | Now targeting mainline standard P1673R13 (2023-11-10), P1674R2 (2022-05-15), P1385R7 (2022-10-15). |
|
std::execution | Forwarded to LWG, wording in progress. Proposal P2300R9 (2024-04-02). See also:
|
Execution |
Pattern Matching | Early development. Draft P1371R3 (2020-09-15). See also: | |
Reflection | The main document (ISO/IEC TS 23619:2021) is described in Reflection TS above. See also:
|
Reflection |
std::simd
|
The main document (TS ISO/IEC 19570:2018) is described in "C++ Extensions for Parallelism V2" above. See also:
|
Data parallel types |
Contracts | Early development. Proposal P2659R2 (2022-11-30). Draft P2660R0 (2022-10-14). See also:
|
|
std::inplace_vector | Early development. Draft P0843R11 (2024-03-22). See also: | |
2D Graphics | Early development. Draft P0267R10 (2019-10-07). |
See also
C documentation for Experimental C features
|