Experimental C++ Features
From cppreference.com
< cpp
C++
Experimental
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
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/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 (experimental), 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 (N4100 (2014-07-04). |
Filesystem (experimental), Filesystem, <filesystem> | ||
| ISO/IEC TS 19570:2015 | C++ Extensions for Parallelism | Published 2015-06-24. (N4507 (2015-05-05). ✔Merged into C++17. |
Parallelism | ||
| ISO/IEC TS 19841:2015 | Transactional Memory TS | Published 2015-09-16, (N4514 (2015-05-08). | Transactional memory | ||
| ISO/IEC TS 19568:2015 | C++ Extensions for Library Fundamentals | Published 2015-09-30, (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 (P0734R0 (2017-07-14). ✔Merged into C++20 (with modifications). |
Constraints and concepts (experimental), Concepts, <concepts> | ||
| ISO/IEC TS 19571:2016 | C++ Extensions for Concurrency | Published 2016-01-19 (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 (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 (N4685 (2017-07-31). |
Ranges (experimental), Ranges, <ranges> | ||
| ISO/IEC TS 22277:2017 | Coroutines TS | Published 2017-12-05 (N4775 (2018-10-07). |
<coroutine> | ||
| ISO/IEC TS 19216:2018 | Networking TS | Published 2018-04-24 (N4771 (2018-10-08).
|
Networking | ||
| ISO/IEC TS 21544:2018 | Modules TS | Published 2018-05-16 (N4720 (2018-01-29). |
|||
| ISO/IEC TS 19570:2018 | Parallelism TS Version 2 | Published 2018-11-15 (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 (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 (N4956 (2023-07-05). | Concurrency 2 | ||
| ISO/IEC TS 19568:2024 | C++ Extensions for Library Fundamentals, Version 3 | Published 2024-08-26 (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).
|
<linalg> | ||
| std::execution | ✔Merged into C++26. Proposal: P2300R10 (2024-06-28).
|
Execution (experimental), Execution, <execution> | ||
| std::inplace_vector | ✔Merged into C++26. Proposal: P0843R14 (2024-06-26).
|
<inplace_vector> | ||
experimental::simdstd::datapar::simd |
✔Merged into C++26. Proposal: P1928R15 (2024-11-22). The main document (TS ISO/IEC 19570:2018) is described in "C++ Extensions for Parallelism V2" above.
|
Data parallel types (experimental), Data parallel types, <simd> | ||
| Contracts | ✔Merged into C++26. Proposal: Contracts for C++ - P2900R14 (2025-02-13)
|
Contract assertions, function contract specifiers, contract_assert, pre, post, <contracts> | ||
| Reflection | The main document (ISO/IEC TS 23619:2021) is described in Reflection TS above.
|
Reflection (experimental) | ||
| Pattern Matching | Early development. Draft P1371R3 (2020-09-15).
|
|||
| Profiles | Early development.
|
|||
| Statistics | Early development. | |||
| Graph Library | Early development. | |||
| 2D Graphics | Early development. Draft P0267R10 (2019-10-07). |
[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-2025. |
| 2. | JTC1/SC22/WG21 Proposals (mailing) for 2025. |