Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/experimental"

From cppreference.com
< cpp
m (+some {{stddoc}} magic (todo); besides, it might be worth omitting revision-parts to force wg21.link to pull out the newest revisions, e.g. "wg21.link p1673" instead of "wg21.link p1673r4" (?))
m (apply {{stddoc}}; the only one small disadvantage is that document type, i.e. {pdf|html}, becomes known only after clicking on the link))
Line 19: Line 19:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf 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.
 
|
 
|
Line 26: Line 26:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3060.pdf 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}}
Line 33: Line 33:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2849.pdf 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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3871.html 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4100.pdf 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}}
Line 45: Line 45:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4507.pdf 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}}
Line 51: Line 51:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4514.pdf 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4480.html 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}}
Line 62: Line 62:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4553.pdf n4553] (2015-10-02). Current draft: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0734r0.pdf 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}}
Line 68: Line 68:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0159r0.html 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}}
Line 74: Line 74:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4617.pdf 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}}
Line 80: Line 80:
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4685.pdf 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}}
Line 86: Line 86:
 
| 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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4736.pdf n4736] (2018-03-31). Latest draft: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4775.pdf 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]].
 
|
 
|
Line 92: Line 92:
 
| 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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4734.pdf n4734] (2017-04-04). Latest draft: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4771.pdf 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}}
 
|-
 
|-
 
| 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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4720.pdf 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]].
|  
+
|
 
|-
 
|-
 
| 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4793.pdf 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: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4808.pdf n4808] (2019-03-11).
+
Post-publication draft: {{stddoc|n4808}} (2019-03-11).
 
| {{rl|parallelism 2}}
 
| {{rl|parallelism 2}}
 
|-
 
|-
 
| 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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4856.pdf n4856] (2020-03-02). Alternative draft [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1240r2.pdf p1240r2] (2022-01-15).
+
| 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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1889r1.pdf p1889r1] (2019-12-27).
+
| Early development. Draft {{stddoc|p1889r1}} (2019-12-27).
|  
+
|
 
|-
 
|-
 
| ISO/IEC AWI TS 9922
 
| ISO/IEC AWI TS 9922
 
| Concurrency TS Version 2
 
| Concurrency TS Version 2
| Early development. Draft [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/n4895.pdf n4895] (2021-08-15).
+
| Early development. Draft {{stddoc|n4895}} (2021-08-15).
 
| {{rl|concurrency 2}}
 
| {{rl|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 [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4920.html n4920] (2022-08-15).
+
| Early development. Draft {{stddoc|n4920}} (2022-08-15).
 
| {{rl|lib_extensions_3|library extensions 3}}
 
| {{rl|lib_extensions_3|library extensions 3}}
 
|-
 
|-
 
| ISO/IEC AWI TS 12907
 
| ISO/IEC AWI TS 12907
 
| Transactional Memory TS, Version 2
 
| Transactional Memory TS, Version 2
| Early development: [https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/n4906.pdf n4906] (2022-02-14).
+
| Early development: {{stddoc|n4906}} (2022-02-14).
|  
+
|
 
|-
 
|-
|  
+
|
 
| Pattern Matching
 
| Pattern Matching
| Early development. Draft [https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2020/p1371r3.pdf p1371r3] (2020-09-15).
+
| Early development. Draft {{stddoc|p1371r3}} (2020-09-15).
 
|
 
|
 
|-
 
|-
|  
+
|
 
| Linear Algebra
 
| Linear Algebra
 
| Early development. Draft {{stddoc|p1385r6}} (2020-03-01) and {{stddoc|p1673r4}} (2021-08-15).
 
| Early development. Draft {{stddoc|p1385r6}} (2020-03-01) and {{stddoc|p1673r4}} (2021-08-15).
 
|
 
|
 
|-
 
|-
|  
+
|
 
| 2D Graphics
 
| 2D Graphics
 
| Early development. Draft {{stddoc|p0267r10}} (2019-10-07).
 
| Early development. Draft {{stddoc|p0267r10}} (2019-10-07).

Revision as of 13:58, 29 September 2022

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.

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 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
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).

Merged into C++20.

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.

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).

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).

parallelism 2
ISO/IEC TS 23619:2021 Reflection TS Published 2021-10-11 (ISO store). Draft N4856 (2020-03-02). Alternative draft P1240R2 (2022-01-15). reflection
Numerics Early development. Draft P1889R1 (2019-12-27).
ISO/IEC AWI TS 9922 Concurrency TS Version 2 Early development. Draft N4895 (2021-08-15). concurrency 2
ISO/IEC AWI TS 19568 C++ Extensions for Library Fundamentals, Version 3 Early development. Draft N4920 (2022-08-15). library extensions 3
ISO/IEC AWI TS 12907 Transactional Memory TS, Version 2 Early development: N4906 (2022-02-14).
Pattern Matching Early development. Draft P1371R3 (2020-09-15).
Linear Algebra Early development. Draft P1385R6 (2020-03-01) and P1673R4 (2021-08-15).
2D Graphics Early development. Draft P0267R10 (2019-10-07).
ISO/IEC NP 19569 Array Extensions TS × Withdrawn. Abandoned draft: N3820 (2013-10-10).

See also

C documentation for Experimental C features