llvm-project/libcxx/docs/Status/Cxx20Papers.csv

22 KiB

1Paper #GroupPaper NameMeetingStatusFirst released version
2`P0463R1 <https://wg21.link/P0463R1>`__LWGEndian just EndianToronto|Complete|7.0
3`P0674R1 <https://wg21.link/P0674R1>`__LWGExtending make_shared to Support ArraysToronto
4
5`P0020R6 <https://wg21.link/P0020R6>`__LWGFloating Point AtomicAlbuquerque
6`P0053R7 <https://wg21.link/P0053R7>`__LWGC++ Synchronized Buffered OstreamAlbuquerque
7`P0202R3 <https://wg21.link/P0202R3>`__LWGAdd constexpr modifiers to functions in <algorithm> and <utility> HeadersAlbuquerque|Complete|12.0
8`P0415R1 <https://wg21.link/P0415R1>`__LWGConstexpr for ``std::complex``\ Albuquerque|In Progress|7.0
9`P0439R0 <https://wg21.link/P0439R0>`__LWGMake ``std::memory_order``\ a scoped enumerationAlbuquerque|Complete|
10`P0457R2 <https://wg21.link/P0457R2>`__LWGString Prefix and Suffix CheckingAlbuquerque|Complete|6.0
11`P0550R2 <https://wg21.link/P0550R2>`__LWGTransformation Trait ``remove_cvref``\ Albuquerque|Complete|6.0
12`P0600R1 <https://wg21.link/P0600R1>`__LWGnodiscard in the LibraryAlbuquerque|In Progress| [#note-P0600]_7.0
13`P0616R0 <https://wg21.link/P0616R0>`__LWGde-pessimize legacy <numeric> algorithms with std::moveAlbuquerque|Complete|12.0
14`P0653R2 <https://wg21.link/P0653R2>`__LWGUtility to convert a pointer to a raw pointerAlbuquerque|Complete|6.0
15`P0718R2 <https://wg21.link/P0718R2>`__LWGAtomic shared_ptrAlbuquerque
16`P0767R1 <https://wg21.link/P0767R1>`__CWGDeprecate PODAlbuquerque|Complete|7.0
17`P0768R1 <https://wg21.link/P0768R1>`__CWGLibrary Support for the Spaceship (Comparison) OperatorAlbuquerque|Complete|
18`P0777R1 <https://wg21.link/P0777R1>`__LWGTreating Unnecessary ``decay``\ Albuquerque|Complete|7.0
19`P0122R7 <https://wg21.link/P0122R7>`__LWG<span>Jacksonville|Complete|7.0
20`P0355R7 <https://wg21.link/P0355R7>`__LWGExtending chrono to Calendars and Time ZonesJacksonville|In Progress|
21`P0551R3 <https://wg21.link/P0551R3>`__LWGThou Shalt Not Specialize ``std``\ Function Templates!Jacksonville|Complete|11.0
22`P0753R2 <https://wg21.link/P0753R2>`__LWGManipulators for C++ Synchronized Buffered OstreamJacksonville
23`P0754R2 <https://wg21.link/P0754R2>`__LWG<version>Jacksonville|Complete|7.0
24`P0809R0 <https://wg21.link/P0809R0>`__LWGComparing Unordered ContainersJacksonville|Nothing To Do|
25`P0858R0 <https://wg21.link/P0858R0>`__LWGConstexpr iterator requirementsJacksonville
26`P0905R1 <https://wg21.link/P0905R1>`__CWGSymmetry for spaceshipJacksonville
27`P0966R1 <https://wg21.link/P0966R1>`__LWG``string::reserve``\ Should Not ShrinkJacksonville|Complete| [#note-P0966]_12.0
28
29`P0019R8 <https://wg21.link/P0019R8>`__LWGAtomic RefRapperswil
30`P0458R2 <https://wg21.link/P0458R2>`__LWGChecking for Existence of an Element in Associative ContainersRapperswil|Complete|13.0
31`P0475R1 <https://wg21.link/P0475R1>`__LWGLWG 2511: guaranteed copy elision for piecewise constructionRapperswil|Complete|
32`P0476R2 <https://wg21.link/P0476R2>`__LWGBit-casting object representationsRapperswil|Complete|14.0
33`P0528R3 <https://wg21.link/P0528R3>`__CWGThe Curious Case of Padding Bits, Featuring Atomic Compare-and-ExchangeRapperswil
34`P0542R5 <https://wg21.link/P0542R5>`__CWGSupport for contract based programming in C++Rapperswil*Removed in Cologne*n/a
35`P0556R3 <https://wg21.link/P0556R3>`__LWGIntegral power-of-2 operationsRapperswil|Complete|9.0
36`P0619R4 <https://wg21.link/P0619R4>`__LWGReviewing Deprecated Facilities of C++17 for C++20Rapperswil|Partial| [#note-P0619]_
37`P0646R1 <https://wg21.link/P0646R1>`__LWGImproving the Return Value of Erase-Like AlgorithmsRapperswil|Complete|10.0
38`P0722R3 <https://wg21.link/P0722R3>`__CWGEfficient sized delete for variable sized classesRapperswil|Complete|9.0
39`P0758R1 <https://wg21.link/P0758R1>`__LWGImplicit conversion traits and utility functionsRapperswil|Complete|
40`P0759R1 <https://wg21.link/P0759R1>`__LWGfpos RequirementsRapperswil|Complete|11.0
41`P0769R2 <https://wg21.link/P0769R2>`__LWGAdd shift to <algorithm>Rapperswil|Complete|12.0
42`P0788R3 <https://wg21.link/P0788R3>`__LWGStandard Library Specification in a Concepts and Contracts WorldRapperswil*Removed in Cologne*n/a
43`P0879R0 <https://wg21.link/P0879R0>`__LWGConstexpr for swap and swap related functions Also resolves LWG issue 2800.Rapperswil|Complete|13.0
44`P0887R1 <https://wg21.link/P0887R1>`__LWGThe identity metafunctionRapperswil|Complete|8.0
45`P0892R2 <https://wg21.link/P0892R2>`__CWGexplicit(bool)Rapperswil
46`P0898R3 <https://wg21.link/P0898R3>`__LWGStandard Library ConceptsRapperswil|Complete|13.0
47`P0935R0 <https://wg21.link/P0935R0>`__LWGEradicating unnecessarily explicit default constructors from the standard libraryRapperswil|Complete|12.0
48`P0941R2 <https://wg21.link/P0941R2>`__CWGIntegrating feature-test macros into the C++ WDRapperswil|In Progress|
49`P1023R0 <https://wg21.link/P1023R0>`__LWGconstexpr comparison operators for std::arrayRapperswil|Complete|8.0
50`P1025R1 <https://wg21.link/P1025R1>`__CWGUpdate The Reference To The Unicode StandardRapperswil
51`P1120R0 <https://wg21.link/P1120R0>`__CWGConsistency improvements for <=> and other comparison operatorsRapperswil
52
53`P0318R1 <https://wg21.link/P0318R1>`__LWGunwrap_ref_decay and unwrap_referenceSan Diego|Complete|8.0
54`P0356R5 <https://wg21.link/P0356R5>`__LWGSimplified partial function applicationSan Diego|Complete|13.0
55`P0357R3 <https://wg21.link/P0357R3>`__LWGreference_wrapper for incomplete typesSan Diego|Complete|8.0
56`P0482R6 <https://wg21.link/P0482R6>`__CWGchar8_t: A type for UTF-8 characters and stringsSan Diego|In Progress|
57`P0487R1 <https://wg21.link/P0487R1>`__LWGFixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)San Diego|Complete|8.0
58`P0591R4 <https://wg21.link/P0591R4>`__LWGUtility functions to implement uses-allocator constructionSan Diego* *
59`P0595R2 <https://wg21.link/P0595R2>`__CWGP0595R2 std::is_constant_evaluated()San Diego|Complete|9.0
60`P0602R4 <https://wg21.link/P0602R4>`__LWGvariant and optional should propagate copy/move trivialitySan Diego|Complete|8.0
61`P0608R3 <https://wg21.link/P0608R3>`__LWGA sane variant converting constructorSan Diego|Complete|9.0
62`P0655R1 <https://wg21.link/P0655R1>`__LWGvisit<R>: Explicit Return Type for visitSan Diego|Complete|12.0
63`P0771R1 <https://wg21.link/P0771R1>`__LWGstd::function move constructor should be noexceptSan Diego|Complete|6.0
64`P0896R4 <https://wg21.link/P0896R4>`__LWGThe One Ranges ProposalSan Diego|In Progress|
65`P0899R1 <https://wg21.link/P0899R1>`__LWGP0899R1 - LWG 3016 is not a defectSan Diego|Nothing To Do|
66`P0919R3 <https://wg21.link/P0919R3>`__LWGHeterogeneous lookup for unordered containersSan Diego|Complete|12.0
67`P0972R0 <https://wg21.link/P0972R0>`__LWG<chrono> ``zero()``\ , ``min()``\ , and ``max()``\ should be noexceptSan Diego|Complete|8.0
68`P1006R1 <https://wg21.link/P1006R1>`__LWGConstexpr in std::pointer_traitsSan Diego|Complete|8.0
69`P1007R3 <https://wg21.link/P1007R3>`__LWG``std::assume_aligned``\ San Diego* *
70`P1020R1 <https://wg21.link/P1020R1>`__LWGSmart pointer creation with default initializationSan Diego* *
71`P1032R1 <https://wg21.link/P1032R1>`__LWGMisc constexpr bitsSan Diego|Complete|13.0
72`P1085R2 <https://wg21.link/P1085R2>`__LWGShould Span be Regular?San Diego|Complete|8.0
73`P1123R0 <https://wg21.link/P1123R0>`__LWGEditorial Guidance for merging P0019r8 and P0528r3San Diego* *
74`P1148R0 <https://wg21.link/P1148R0>`__LWGCleaning up Clause 20San Diego* *
75`P1165R1 <https://wg21.link/P1165R1>`__LWGMake stateful allocator propagation more consistent for ``operator+(basic_string)``\ San Diego* *
76`P1209R0 <https://wg21.link/P1209R0>`__LWGAdopt Consistent Container Erasure from Library Fundamentals 2 for C++20San Diego|Complete|8.0
77`P1210R0 <https://wg21.link/P1210R0>`__LWGCompleting the Rebase of Library Fundamentals, Version 3, Working DraftSan Diego* *
78`P1236R1 <https://wg21.link/P1236R1>`__CWGAlternative Wording for P0907R4 Signed Integers are Two's ComplementSan Diego* *
79`P1248R1 <https://wg21.link/P1248R1>`__LWGRemove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)San Diego|Complete|13.0
80`P1285R0 <https://wg21.link/P1285R0>`__LWGImproving Completeness Requirements for Type TraitsSan Diego* *
81`P1353R0 <https://wg21.link/P1353R0>`__CWGMissing feature test macrosSan Diego* *
82
83`P0339R6 <https://wg21.link/P0339R6>`__LWGpolymorphic_allocator<> as a vocabulary typeKona
84`P0340R3 <https://wg21.link/P0340R3>`__LWGMaking std::underlying_type SFINAE-friendlyKona|Complete|9.0
85`P0738R2 <https://wg21.link/P0738R2>`__LWGI Stream, You Stream, We All Stream for istream_iteratorKona
86`P0811R3 <https://wg21.link/P0811R3>`__LWGWell-behaved interpolation for numbers and pointersKona|Complete|9.0
87`P0920R2 <https://wg21.link/P0920R2>`__LWGPrecalculated hash values in lookupKonaReverted by `P1661 <https://wg21.link/P1661>`__
88`P1001R2 <https://wg21.link/P1001R2>`__LWGTarget Vectorization Policies from Parallelism V2 TS to C++20Kona
89`P1024R3 <https://wg21.link/P1024R3>`__LWGUsability Enhancements for std::spanKona|Complete|9.0
90`P1164R1 <https://wg21.link/P1164R1>`__LWGMake create_directory() IntuitiveKona|Complete|12.0
91`P1227R2 <https://wg21.link/P1227R2>`__LWGSigned ssize() functions, unsigned size() functionsKona|Complete|9.0
92`P1252R2 <https://wg21.link/P1252R2>`__LWGRanges Design CleanupKona
93`P1286R2 <https://wg21.link/P1286R2>`__CWGContra CWG DR1778Kona
94`P1357R1 <https://wg21.link/P1357R1>`__LWGTraits for [Un]bounded ArraysKona|Complete|9.0
95`P1458R1 <https://wg21.link/P1458R1>`__LWGMandating the Standard Library: Clause 16 - Language support libraryKona|Complete|9.0
96`P1459R1 <https://wg21.link/P1459R1>`__LWGMandating the Standard Library: Clause 18 - Diagnostics libraryKona|Complete|9.0
97`P1462R1 <https://wg21.link/P1462R1>`__LWGMandating the Standard Library: Clause 20 - Strings libraryKona|Complete|9.0
98`P1463R1 <https://wg21.link/P1463R1>`__LWGMandating the Standard Library: Clause 21 - Containers libraryKona
99`P1464R1 <https://wg21.link/P1464R1>`__LWGMandating the Standard Library: Clause 22 - Iterators libraryKona|Complete|9.0
100
101`P0325 <https://wg21.link/P0325>`__LWGto_array from LFTS with updatesCologne|Complete|10.0
102`P0408 <https://wg21.link/P0408>`__LWGEfficient Access to basic_stringbuf's BufferCologne
103`P0466 <https://wg21.link/P0466>`__LWGLayout-compatibility and Pointer-interconvertibility TraitsCologne
104`P0553 <https://wg21.link/P0553>`__LWGBit operationsCologne|Complete|9.0
105`P0631 <https://wg21.link/P0631>`__LWGMath ConstantsCologne|Complete|11.0
106`P0645 <https://wg21.link/P0645>`__LWGText FormattingCologne|In Progress|
107`P0660 <https://wg21.link/P0660>`__LWGStop Token and Joining Thread, Rev 10Cologne
108`P0784 <https://wg21.link/P0784>`__CWGMore constexpr containersCologne|Complete|12.0
109`P0980 <https://wg21.link/P0980>`__LWGMaking std::string constexprCologne
110`P1004 <https://wg21.link/P1004>`__LWGMaking std::vector constexprCologne
111`P1035 <https://wg21.link/P1035>`__LWGInput Range AdaptorsCologne
112`P1065 <https://wg21.link/P1065>`__LWGConstexpr INVOKECologne|Complete|12.0
113`P1135 <https://wg21.link/P1135>`__LWGThe C++20 Synchronization LibraryCologne|Complete|11.0
114`P1207 <https://wg21.link/P1207>`__LWGMovability of Single-pass IteratorsCologne
115`P1208 <https://wg21.link/P1208>`__LWGAdopt source_location for C++20Cologne
116`P1355 <https://wg21.link/P1355>`__LWGExposing a narrow contract for ceil2Cologne|Complete|9.0
117`P1361 <https://wg21.link/P1361>`__LWGIntegration of chrono with text formattingCologne
118`P1423 <https://wg21.link/P1423>`__LWGchar8_t backward compatibility remediationCologne|In Progress|
119`P1424 <https://wg21.link/P1424>`__LWG'constexpr' feature macro concernsCologneSuperseded by `P1902 <https://wg21.link/P1902>`__
120`P1466 <https://wg21.link/P1466>`__LWGMiscellaneous minor fixes for chronoCologne
121`P1474 <https://wg21.link/P1474>`__LWGHelpful pointers for ContiguousIteratorCologne
122`P1502 <https://wg21.link/P1502>`__LWGStandard library header units for C++20Cologne
123`P1522 <https://wg21.link/P1522>`__LWGIterator Difference Type and Integer OverflowCologne
124`P1523 <https://wg21.link/P1523>`__LWGViews and Size TypesCologne
125`P1612 <https://wg21.link/P1612>`__LWGRelocate Endian's SpecificationCologne|Complete|10.0
126`P1614 <https://wg21.link/P1614>`__LWGThe Mothership has LandedCologne|In Progress|
127`P1638 <https://wg21.link/P1638>`__LWGbasic_istream_view::iterator should not be copyableCologne
128`P1643 <https://wg21.link/P1643>`__LWGAdd wait/notify to atomic_refCologne
129`P1644 <https://wg21.link/P1644>`__LWGAdd wait/notify to atomic<shared_ptr>Cologne
130`P1650 <https://wg21.link/P1650>`__LWGOutput std::chrono::days with 'd' suffixCologne
131`P1651 <https://wg21.link/P1651>`__LWGbind_front should not unwrap reference_wrapperCologne|Complete|13.0
132`P1652 <https://wg21.link/P1652>`__LWGPrintf corner cases in std::formatCologne
133`P1661 <https://wg21.link/P1661>`__LWGRemove dedicated precalculated hash lookup interfaceCologne|Nothing To Do|
134`P1754 <https://wg21.link/P1754>`__LWGRename concepts to standard_case for C++20, while we still canCologne|In Progress|
135
136`P0883 <https://wg21.link/P0883>`__LWGFixing Atomic InitializationBelfast|Complete| [#note-P0883]_13.0
137`P1391 <https://wg21.link/P1391>`__LWGRange constructor for std::string_viewBelfast* *
138`P1394 <https://wg21.link/P1394>`__LWGRange constructor for std::spanBelfast* *
139`P1456 <https://wg21.link/P1456>`__LWGMove-only viewsBelfast* *
140`P1622 <https://wg21.link/P1622>`__LWGMandating the Standard Library: Clause 32 - Thread support libraryBelfast* *
141`P1645 <https://wg21.link/P1645>`__LWGconstexpr for numeric algorithmsBelfast|Complete|12.0
142`P1664 <https://wg21.link/P1664>`__LWGreconstructible_range - a concept for putting ranges back togetherBelfast* *
143`P1686 <https://wg21.link/P1686>`__LWGMandating the Standard Library: Clause 27 - Time libraryBelfast* *
144`P1690 <https://wg21.link/P1690>`__LWGRefinement Proposal for P0919 Heterogeneous lookup for unordered containersBelfast|Complete|12.0
145`P1716 <https://wg21.link/P1716>`__LWGranges compare algorithm are over-constrainedBelfast* *
146`P1718 <https://wg21.link/P1718>`__LWGMandating the Standard Library: Clause 25 - Algorithms libraryBelfast* *
147`P1719 <https://wg21.link/P1719>`__LWGMandating the Standard Library: Clause 26 - Numerics libraryBelfast* *
148`P1720 <https://wg21.link/P1720>`__LWGMandating the Standard Library: Clause 28 - Localization libraryBelfast* *
149`P1721 <https://wg21.link/P1721>`__LWGMandating the Standard Library: Clause 29 - Input/Output libraryBelfast* *
150`P1722 <https://wg21.link/P1722>`__LWGMandating the Standard Library: Clause 30 - Regular Expression libraryBelfast* *
151`P1723 <https://wg21.link/P1723>`__LWGMandating the Standard Library: Clause 31 - Atomics libraryBelfast* *
152`P1855 <https://wg21.link/P1855>`__LWGMake ``<compare>``\ freestandingBelfast* *
153`P1862 <https://wg21.link/P1862>`__LWGRanges adaptors for non-copyable iteratorsBelfast* *
154`P1865 <https://wg21.link/P1865>`__LWGAdd max() to latch and barrierBelfast|Complete|11.0
155`P1869 <https://wg21.link/P1869>`__LWGRename 'condition_variable_any' interruptible wait methodsBelfast* *
156`P1870 <https://wg21.link/P1870>`__LWGforwarding-range is too subtleBelfast|In Progress|
157`P1871 <https://wg21.link/P1871>`__LWGShould concepts be enabled or disabled?Belfast* *
158`P1872 <https://wg21.link/P1872>`__LWGspan should have size_type, not index_typeBelfast|Complete|10.0
159`P1878 <https://wg21.link/P1878>`__LWGConstraining Readable TypesBelfast* *
160`P1892 <https://wg21.link/P1892>`__LWGExtended locale-specific presentation specifiers for std::formatBelfast|Complete|14.0
161`P1902 <https://wg21.link/P1902>`__LWGMissing feature-test macros 2018-2019Belfast* *
162`P1959 <https://wg21.link/P1959>`__LWGRemove std::weak_equality and std::strong_equalityBelfast* *
163`P1960 <https://wg21.link/P1960>`__LWGNB Comment Changes Reviewed by SG1Belfast* *
164`P1961 <https://wg21.link/P1961>`__LWGHarmonizing the definitions of total order for pointersBelfast* *
165`P1965 <https://wg21.link/P1965>`__LWGBlanket Wording for Specifying "Hidden Friends"Belfast* *
166
167`P0586 <https://wg21.link/P0586>`__LWGSafe integral comparisonsPrague|Complete|13.0
168`P0593 <https://wg21.link/P0593>`__CWGImplicit creation of objects for low-level object manipulationPrague* *
169`P1115 <https://wg21.link/P1115>`__LWGImproving the Return Value of Erase-Like Algorithms II: Free erase/erase ifPrague|Complete|11.0
170`P1243 <https://wg21.link/P1243>`__LWGRangify New AlgorithmsPrague* *
171`P1460 <https://wg21.link/P1460>`__LWGMandating the Standard Library: Clause 20 - Utilities libraryPrague* *
172`P1739 <https://wg21.link/P1739>`__LWGAvoid template bloat for safe_ranges in combination with "subrange-y" view adaptorsPrague* *
173`P1831 <https://wg21.link/P1831>`__LWGDeprecating volatile: libraryPrague* *
174`P1868 <https://wg21.link/P1868>`__LWGwidth: clarifying units of width and precision in std::formatPrague* *
175`P1908 <https://wg21.link/P1908>`__CWGReserving Attribute Namespaces for Future UsePrague* *
176`P1937 <https://wg21.link/P1937>`__CWGFixing inconsistencies between constexpr and consteval functionsPrague* *
177`P1956 <https://wg21.link/P1956>`__LWGOn the names of low-level bit manipulation functionsPrague|Complete|12.0
178`P1957 <https://wg21.link/P1957>`__CWGConverting from ``T*``\ to bool should be considered narrowing (re: US 212)Prague* *
179`P1963 <https://wg21.link/P1963>`__LWGFixing US 313Prague* *
180`P1964 <https://wg21.link/P1964>`__LWGWording for boolean-testablePrague|Complete|13.0
181`P1970 <https://wg21.link/P1970>`__LWGConsistency for size() functions: Add ranges::ssizePrague* *
182`P1973 <https://wg21.link/P1973>`__LWGRename "_default_init" Functions, Rev1Prague* *
183`P1976 <https://wg21.link/P1976>`__LWGFixed-size span construction from dynamic rangePrague|Complete|11.0
184`P1981 <https://wg21.link/P1981>`__LWGRename leap to leap_secondPrague* *
185`P1982 <https://wg21.link/P1982>`__LWGRename link to time_zone_linkPrague* *
186`P1983 <https://wg21.link/P1983>`__LWGWording for GB301, US296, US292, US291, and US283Prague* *
187`P1994 <https://wg21.link/P1994>`__LWGelements_view needs its own sentinelPrague* *
188`P2002 <https://wg21.link/P2002>`__CWGDefaulted comparison specification cleanupsPrague* *
189`P2045 <https://wg21.link/P2045>`__LWGMissing Mandates for the standard libraryPrague* *
190`P2085 <https://wg21.link/P2085>`__CWGConsistent defaulted comparisonsPrague* *
191`P2091 <https://wg21.link/P2091>`__LWGIssues with range access CPOsPrague* *
192`P2101 <https://wg21.link/P2101>`__LWG'Models' subsumes 'satisfies' (Wording for US298 and US300)Prague* *
193`P2102 <https://wg21.link/P2102>`__LWGMake 'implicit expression variations' more explicit (Wording for US185)Prague* *
194`P2106 <https://wg21.link/P2106>`__LWGAlternative wording for GB315 and GB316Prague* *
195`P2116 <https://wg21.link/P2116>`__LWGRemove tuple-like protocol support from fixed-extent spanPrague|Complete|11.0
196`P2231 <https://wg21.link/P2231>`__LWGMissing constexpr in std::optional and std::variantFebruary 2021|In progress|13.0
197`P2325 <https://wg21.link/P2325>`__LWGViews should not be required to be default constructibleJune 2021|In progress|
198`P2210R2 <https://wg21.link/P2210R2>`__LWGSuperior String SplittingJune 2021
199`P2216R3 <https://wg21.link/P2216R3>`__LWGstd::format improvementsJune 2021
200`P2281R1 <https://wg21.link/P2281R1>`__LWGClarifying range adaptor objectsJune 2021
201`P2328R1 <https://wg21.link/P2328R1>`__LWGjoin_view should join all views of rangesJune 2021
202`P2367R0 <https://wg21.link/P2367R0>`__LWGRemove misuses of list-initialization from Clause 24June 2021