This report summarizes the activities of C++'s Library Evolution group from 2021-09-28 to 2022-01-25. It is split into two sections; one focused on execution (process, logistics, and operations) and one focused on technical work (papers we processed, etc).
Readers are encouraged to also look at:
-
[P2145R1]: Evolving C++ Remotely
-
[P2138R3]: Rules of Design <=> Specification Engagement
-
[P2195R2]: Electronic Straw Polls
-
[P1000R4]: C++ Release Schedule
-
[P0592R4]: Plan and Priorities for C++23 and Beyond
-
[P2489R0]: Library Evolution Plan for Completing C++23
Prior Library Evolution reports:
-
[P2247R1]: 2020-04-06 to 2020-10-22
-
[P2400R0]: 2020-10-27 to 2021-02-16
-
[P2400R1]: 2021-02-23 to 2021-05-25
-
[P2400R2]: 2021-06-01 to 2021-09-20
1. Execution
1.1. C++23 Schedule
C++23 is now feature complete, as of 2022-02, as per our release schedule [P1000R4]. No new features will be added to C++23. C++23 is the first C++ Standard designed entirely under our remote procedures [P2145R1].
We will continue to refine C++23 over the next few months. In particular, we’ll focus on:
-
Clarifications or questions from Library on material we’ve already forwarded to them for C++23.
-
Papers that fix issues in papers we’ve sent to Library for C++23.
-
Papers that fix issues in the Working Draft (especially issues we’ve recently introduced).
Library Evolution will continue working solely on C++23 through 2022-02, at which point we expect to complete all outstanding C++23 work.
In 2022-07, the C++ Committee will complete the C++23 Committee Draft (CD) and solicit comments from National Bodies (NBs). Once we receive those comments in 2022-Fall, Library Evolution will shift its attention back to C++23.
1.2. C++26 Schedule
Library Evolution will begin working on C++26 in 2022-03, and C++26 will increasingly consume our attention as we approach the release of the C++23 Committee Draft.
By 2022-Summer, we expect to be fully focused on C++26. Our efforts will briefly shift away from C++26 in 2022-Fall so that we can address National Body comments and finalize C++23.
1.3. Telecons
Since 2020-04, Library Evolution has held a 1.5 hour telecon once a week to review papers. Typically, 1 or 2 papers are reviewed at each telecon.
Recently, Library Evolution has started experimenting with a new format, supertelecons, to work on larger projects and help complete C++23. Supertelecons are held over 2 consecutive days, meeting for 3.5 hours a day, for 7 hours in total. We held three supertelecons - 2021-10, 2021-11, and 2022-01. These initial 3 supertelecons were quite successful, and we anticipate using this format alongside regulary weekly telecons and mailing list reviews in the future.
The agenda for upcoming telecon reviews can be found here. For details on how to participate in telecon reviews, please view the calendar on documents.isocpp.org or contact Bryce Adelstein Lelbach.
More details on how we use telecons can be found in [P2145R1].
2021-09-28 to 2022-01-25 | Since 2020-04-06 | |
---|---|---|
# of Telecons | 14 | 88 |
# of Supertelecons | 3 | 3 |
# of (Super)Telecon Days | 6 | 6 |
# of Papers Reviewed On (Super)Telecons | 36 | 143 |
# of Papers Advanced From (Super)Telecons to Electronic Polling | 21 | 49 |
Total # of (Super)Telecon Attendees | 121 | 217 |
Mean Attendees Per Telecon | 34.65 | 31.58 |
Median Attendees Per Telecon | 31.5 | 30.0 |
Mean Telecons Per Attendee | 5.73 | 13.05 |
Median Telecons Per Attendee | 3 | 4 |
Mean Attendees Per Supertelecon Day | 43 | 43 |
Median Attendees Per Supertelecon Day | 43.5 | 43.5 |
1.4. Mailing List Reviews
In addition to telecons, we review some papers via mailing list discussions.
Mailing list reviews are critical to our operations, as they allow us to increase our paper-processing bandwidth without increasing the frequency or duration of telecons. Additionally, certain classes of papers tend to be particularly well suited for mailing list reviews, such as new proposals which tend to need feedback, not decision making.
We conduct 2 to 3 mailing list reviews concurrently, and each review lasts for a few weeks.
The agenda for upcoming mailing list reviews can be found here. For details on how to participate in mailing list reviews, please contact Bryce Adelstein Lelbach.
More details on how we use mailing lists can be found in P2145R1.
2021-09-28 to 2022-01-25 | Since 2020-04-06 | |
---|---|---|
# of Papers Reviewed On The Mailing List | 17 | 52 |
# of Papers Advanced From Mailing List Directly To Electronic Polling | 18 | 21 |
1.5. Paper Queues and Backlog
The above information is as of the publication of this paper. For up to date counts and more details on the various queues of papers being handled by Library Evolution, please see the paper queries GitHub wiki page.
1.6. Electronic Polling
Library Evolution typically conducts a quarterly series of electronic polls to affirm the decisions we make. From 2021-09 through 2022-01, we instead conducted electronic polls every month to accomodate our increased activity at the end of the C++23 design cycle.
The following polling periods have been conducted over the past year:
-
2020-Fall - completed, outcomes can be found in P2262R0.
-
2021-Winter - completed, outcomes can be found in P2368R0.
-
2021-Spring - completed, outcomes can be found in P2384R1.
-
2021-Summer - completed, outcomes can be found in P2435R1.
-
2021-09 - completed, outcomes can be found in P2451R0.
-
2021-10 - completed, outcomes can be found in P2453R0.
-
2021-11 - completed, outcomes can be found in P2455R0.
-
2021-12 - completed, outcomes can be found in P2457R0.
-
2022-01 - completed, outcomes can be found in P2459R0.
More details on electronic polling can be found in P2195R2.
1.6.1. Expedited Advancement to Electronic Polling
Library Evolution telecons are the best way for us to review papers remotely, but our telecon time is limited. We started mailing list reviews of papers to reduce the demands on Library Evolution telecon time, but until recently, all papers have still required some telecon review before they are advanced to electronic polls and out of Library Evolution.
In the last few months, we have begun experimenting with advancing papers directly from mailing list review to electronic polling. The procedure is intended for smaller matters, non-controversial matters, and matters that we believe will not benefit from telecon discussion. It works as follows:
0.) A mailing list thread is started on lib-ext@ proposing that a paper be advanced directly to electronic polling. Background on the paper, its maturity, and the outcomes of previous discussions is provided. 1.) Participants are asked to take a stance on the motion by replying with either a "+1" or a "-1". 2.) When the thread reaches its nature conclusion, the chairs determine whether it is suitable for the paper to proceed to electronic polling. Typically, we are looking for strong and vocal support; a lack of objections is not sufficient.
1.7. Prioritization
In conjunction with Library, we’ve prioritized all the papers that have been forwarded to Library, using the priority levels identified in the plan and priorities for C++23 and beyond. We plan to update this prioritization in the coming weeks to help Library plan their efforts for completing C++23. See the prioritized list of papers for details.
1.8. Chair Guide
We have developed a Library Evolution chairing guide, which can be found on the Library Evolution GitHub wiki
1.9. Staff
Library Evolution is organized by a team, not a single individual:
-
Bryce Adelstein Lelbach, Chair
-
Fabio Fracassi, Vice Chair
-
Ben Craig, Vice Chair
-
Billy Baker, Incubator Chair
-
Nevin Liber, Incubator Vice Chair
-
Corentin Jabot, Mailing List Review Manager
-
Inbal Levi, Mailing List Review Manager and Algorithms Task Force Chair
-
Gašper Ažman, Coroutines Library Task Force Chair
Leadership by a group instead of a team has a number of benefits:
-
Increases our capacity and capabilities.
-
Reduces the burden on each leader.
-
Builds institutional knowledge and redundancy.
We hold a regular staff meeting every two weeks to discuss our operations and make plans for the future.
Additionally, the following noble individuals take minutes for Library Evolution, and deserve accolades:
-
Ben Craig
-
Inbal Levi
-
Mark Hoemmen
-
Guy Davidson
-
Dietmar Kühl
-
Gašper Ažman
-
Steve Downey
-
Bronek Kozicki
2. Technical
2.1. Plenary Approved Priorities
The C++ Committee adopted a plan and priorities for C++23 and beyond. This section describes the status of the priority Standard Library features described in that plan.
Plenary Approved Priority | Status |
---|---|
Executors | Under Library Evolution review, on track for C++26. |
Networking | Under Networking Study Group review. |
Coroutines Library Support | [P2502R1] design approved for C++23.
|
Standard Library Modules | [P2465R1] Standard Library Modules And design approved for C++23.
|
2.1.1. Senders And Receivers
In 2021-09 and 2021-10, Library Evolution discussed and compared two different models for asynchrony in the Standard Library: the Senders and Receivers model [P2300R4] and the Networking TS model [P2444R0]. That discussion reached a few key conclusions [P2453R0]:
-
Library Evolution wants a single unifying model for asynchrony for the C++ Standard Library.
-
There is consensus in Library Evolution that Senders and Receivers model is a good basis for most asynchronous use cases, including networking, parallelism, and heterogeneous computing.
-
Most in Library Evolution feel that the Networking TS model is not a suitable basis for most asynchronous use cases, including parallelism and heterogeneous computing.
-
Library Evolution does not want to stop working on the Networking TS.
-
Library Evolution would like networking in the Standard Library to be based on Senders and Receivers.
Following those conclusions, Library Evolution focused on trying to complete [P2300R4] Senders and Receivers for C++23. We held three supertelecons focused on Senders and Receivers.
We made great progress on [P2300R4] Senders and Receivers over the last few months, and we have consensus in favor of the design. There is sustained strong opposition against including such a large proposal into C++23 at such a late stage. It is also unclear whether we would be able to complete wording review in the limited time we have available. Therefore, Library Evolution decided to not advance [P2300R4] Senders and Receivers for C++23. Instead, we hope to send it to Library early in the C++26 cycle.
2.1.2. Networking
We discussed the Networking Technical Specification, [N4771], in 2021-Fall, reaching a series of conclusions in the [P2453R0] 2022-10 Library Evolution Poll Outcomes.
The Networking TS we have today uses a different asynchrony model from [P2300R4] Senders and Receivers. Library Evolution has expressed a desire to have a single model for asynchrony in the Standard Library and has consensus in favor of the Senders and Receivers design. If we are to proceed with Networking TS design as-is, Library Evolution will need to be shown compelling new information on why networking should use a different asynchrony model.
Alternatively, we could pursue a refinement of the Networking TS based on senders or receivers or a different networking design altogether. Library Evolution strongly encourages work in this area, but we have no such proposal today.
Given the need for significant design changes, networking will not make it into C++23.
2.1.3. Coroutines Library Support
A new proposal for
, [P2502R1], was brought to Library
Evolution in 2021-12.
Many of the open design questions were addressed, however some key ones remained,
such as what the reference type of
should be.
Library Evolution leadership formed an ad-hoc task force, led by Gašper Ažman,
to discuss and try and resolve these remaining questions.
This task force was successful, and in 2022-01, Library Evolution design
approved [P2502R1]
for C++23 via electronic poll.
2.1.4. Standard Library Modules
In 2021-10, Library Evolution completed our work on [P2465R1] Standard
Library Modules for C++23.
After a lengthy discussion, we determined we liked the shape of the two modules
in the proposal and we came up with names that we had consensus on.
In 2021-11, [P2465R1] Standard Library Modules
and
was
design approved for C++23 via electronic poll.
2.2. Other Highlights
2.2.1. Ranges
We’ve delivered a significant amount of the work laid out in [P2214R2] A Plan for C++23 Ranges. Almost all of the tier 1 components are on track for C++23; for more details, see [P2214R2].
The following ranges proposals were advanced to Library Working Group for C++23 by electronic poll:
-
[P2387R2]: Pipe Support For User-Defined Range Adaptors
-
[P2443R0]:
views :: chunk_by -
[P2442R0]:
Andviews :: chunk views :: slide -
[P2374R3]:
views :: cartesian_product -
[P2441R1]:
views :: join_with -
[P2446R1]:
views :: all_move -
[P1899R2]:
views :: stride -
[P2474R1]:
views :: repeat -
[P2440R0]:
,ranges :: iota
, Andranges :: shift_left ranges :: shift_right -
[P2322R5]:
ranges :: fold -
[P2302R2]:
ranges :: contains -
[P2278R2]:
Should Always Return A Constant Iteratorcbegin -
[P2408R4]: Ranges Iterators As Inputs To Non-Ranges Algorithms
-
[P2494R1]: Relaxing Range Adaptors To Allow For Move Only Types
-
[P2165R3]: Compatibility Between
,tuple
, Andpair
-like objectstuple -
[P2255R2]: A Type Trait To Detect Reference Binding To Temporary
2.2.2. Formatting and Printing
We’ve accomplished most of our goals for formatting and printing in C++23. We finished our review of the two major proposals, [P2093R13] Formatted Output and [P2286R6] Formatting Ranges, as well as [P2419R1] Clarify Handling Of Encodings In Localized Formatting Of Chrono Types, and advanced all three proposals to Library Working Group for C++23 via electronic poll.
2.2.3. Text and Unicode
We completed our review of [P1885R8] Naming Text Encodings To Demystify Them,
which is a part of the roadmap laid our in [P1238R0] Unicode Direction, and
sent it to Library Working Group for C++23 via electronic poll.
We also advanced [P2460R0] Relax Requirements On
To Match Existing
Practices to Library Working Group for C++23 via electronic poll, although
it still needs to be reviewed and approved by Language Evolution.
2.2.4. Linear Algebra and mdspan
After many years of work, we finished reviewing [P0009R16]
and sent
it to Library Working Group for C++23.
We plan to look at two follow-on papers that fix some issues in
in
the next few weeks: [P2554R0] C-Array Interoperability Of
and [P2553R0] Make
Controllable.
We’ll also be reviewing [P1684R1]
, an owning multidimensional
analog of
that is similar to a container adaptor.
We’re planning to start another review of [P1673R6] Linear Algebra in 2022-Spring. The review of the other proposal in this space, [P1385R6], has been postponed at the request of its authors.
2.2.5. Concurrency TS v2
We’ve been working on the Concurrency TS v2 for awhile, and it’s finally nearing completion. A plan for completing it is outlined in [P2559R0].
The following proposals were advanced to Library Working Group for the Concurrency TS v2 by electronic poll:
2.3. Papers Reviewed
The following papers were evaluated in the 2021-10 Library Evolution polling period (see [P2453R0] for details):
The following papers were advanced to to Library Working Group for C++23 in the 2021-11 Library Evolution polling period (see [P2455R0] for details):
-
[P2465R1]: Standard Library Modules
Andstd std . compat -
[P2387R2]: Pipe Support For User-Defined Range Adaptors
-
[P2443R0]:
views :: chunk_by -
[P2442R0]:
Andviews :: chunk views :: slide -
[P2440R0]:
,ranges :: iota
, Andranges :: shift_left ranges :: shift_right -
[P2255R2]: A Type Trait To Detect Reference Binding To Temporary
-
[P1885R8]: Naming Text Encodings To Demystify Them
-
[P2419R1]: Clarify Handling Of Encodings In Localized Formatting Of Chrono Types
-
[P2460R0]: Relax Requirements On
To Match Existing Practiceswchar_t -
[P2445R0]:
forward_like -
[P2417R0]: A More
constexpr bitset -
[P1841R1]: Wording For Individually Specializable Numeric Traits
-
[P0627R6]:
unreachable
The following papers were advanced to to Library Working Group for C++23 in the 2021-12 Library Evolution polling period (see [P2457R0] for details):
-
[P0009R16]:
mdspan -
[P2093R13]: Formatted Output
-
[P1467R7]: Extended Floating-Point Types
-
[P2278R2]:
Should Always Return A Constant Iteratorcbegin -
[P2408R4]: Ranges Iterators As Inputs To Non-Ranges Algorithms
-
[P2374R3]:
views :: cartesian_product -
[P2441R1]:
views :: join_with -
[P2446R1]:
views :: all_move -
[P2467R0]: Support Exclusive Mode For
sfstream -
[P2438R1]:
string :: substr () &&
The following papers were advanced to to Library Working Group for the Concurrency TS v2 in the 2021-12 Library Evolution polling period (see [P2457R0] for details):
-
[P2396R0]: Concurrency TS v2 Fixes
The following papers were evaluated in the 2021-12 Library Evolution polling period (see [P2457R0] for details):
-
[P2198R3]: Freestanding Feature-Test Macros And Implementation-Defined Extensions
The following papers were advanced to to Library Working Group for C++23 in the 2022-01 Library Evolution polling period (see [P2459R0] for details):
-
[P2363R3]: Extending Associative Containers With The Remaining Heterogeneous Overloads
-
[P0493R3]: Atomic Maximum/Minimum
-
[P2286R6]: Formatting Ranges
-
[P2165R3]: Compatibility Between
,tuple
, Andpair
-like objectstuple -
[P2494R1]: Relaxing Range Adaptors To Allow For Move Only Types
-
[P2322R5]:
ranges :: fold -
[P2302R2]:
ranges :: contains -
[P1899R2]:
views :: stride -
[P2474R1]:
views :: repeat -
[P2508R1]: Expose
basic - format - string < charT , Args ... > -
[P2248R4]: Enabling List-Initialization For Algorithms
-
[P2404R2]: Move-Only Types For
,equality_comparable_with
, Andtotally_ordered_with three_way_comparable_with -
[P2502R1]:
std :: generator
The following papers were evaluated in the 2022-01 Library Evolution polling period (see [P2459R0] for details):
-
[P2300R4]:
std :: execution
The following papers were reviewed at Library Evolution telecons between 2021-09-28 and 2022-01-25:
-
[P2300R4]:
std :: execution -
[P2444R0]: Asio Async Model
-
[P2464R0]: Ruminations On Networking And Executors
-
[P2469R0]: Response To P2464: The Networking TS Is Baked, P2300 Senders And Receivers Is Not
-
[P2465R1]: Standard Mibrary Modules
Andstd std . compat -
[P2442R0]:
Andviews :: chunk views :: slide -
[P2443R0]:
views :: chunk_by -
[P2374R3]:
views :: cartesian_product -
[P2446R1]:
views :: all_move -
[P2441R1]:
views :: join_with -
[P2474R1]:
views :: repeat -
[P2440R0]:
,ranges :: iota
, Andranges :: shift_left ranges :: shift_right -
[P2322R5]:
ranges :: fold -
[P2387R2]: Pipe Support For User-Defined Range Adaptors
-
[P2494R1]: Relaxing Range Adaptors To Allow For Move Only Types
-
[P2255R2]: A Type Trait To Detect Reference Binding To Temporary
-
[P2278R2]:
Should Always Return A Constant Iteratorcbegin -
[P0009R14]:
mdspan -
[P1885R8]: Naming Text Encodings To Demystify Them
-
[P2445R0]:
forward_like -
[P1467R7]: Extended Floating Point Types
-
[P2286R6]: Formatting Ranges
-
[P2093R13]: Formatted Output
-
[P2198R3]: Freestanding Feature-Test Macros And Implementation-Defined Extensions
-
[P2502R1]:
std :: generator -
[P2529R0]:
Should Havestd :: generator T && reference_type -
[P0493R3]: Atomic Maximum/Minimum
-
[P2486R1]: Structured Naming For Function Object And CPO Values
-
[P2165R3]: Compatibility Between
,tuple
, Andpair
-Like Objectstuple -
[P2508R1]: Expose
basic - format - string < charT , Args ... >
The following papers were reviewed at Library Evolution 2021-10 supertelecon:
-
[P2300R4]:
std :: execution -
[P2322R5]:
ranges :: fold -
[P2440R0]:
,ranges :: iota
, Andranges :: shift_left ranges :: shift_right -
[P2387R2]: Pipe Support For User-Defined Range Adaptors
The following papers were reviewed at Library Evolution 2021-11 supertelecon:
-
[P2300R4]:
std :: execution
The following papers were reviewed at Library Evolution 2022-01 supertelecon:
-
[P2300R4]:
std :: execution
The following papers were reviewed on the Library Evolution mailing list between 2021-09-28 and 2022-01-25:
-
[P2407R0]: Freestanding Library: Partial Classes
-
[P1899R2]:
views :: stride -
[P2302R2]:
ranges :: contains -
[P2447R0]:
And The Missing Constructorspan -
[P2408R4]: Ranges Iterators As Inputs To Non-Ranges Algorithms
-
[P2248R4]: Enabling List-Initialization For Algorithms
-
[P2405R0]:
Andnullopt_t
Should Both Havenullptr_t
Andoperator <=> operator == -
[P2249R1]: Mixed Comparisons For Smart Pointers
-
[P2404R2]: Move-Only Types For
,equality_comparable_with
, Andtotally_ordered_with three_way_comparable_with -
[P2438R1]:
string :: substr () && -
[P2363R3]: Extending Associative Containers With The Remaining Heterogeneous Overloads
-
[P2419R1]: Clarify Handling Of Encodings In Localized Formatting Of Chrono Types
-
[P2460R0]: Relax Requirements On
To Match Existing Practiceswchar_t -
[P2467R0]: Support Exclusive Mode For
sfstream -
[P1841R1]: Wording For Individually Specializable Numeric Traits
-
[P0627R6]:
unreachable -
[P2396R0]: Concurrency TS v2 Fixes
2.4. Papers Advanced For C++23
Library Evolution advanced 64 papers to Library for C++23 since 2020-04-06:
-
[P2363R3]: Extending Associative Containers With The Remaining Heterogeneous Overloads
-
[P0493R3]: Atomic Maximum/Minimum
-
[P2286R6]: Formatting Ranges
-
[P2165R3]: Compatibility Between
,tuple
, Andpair
-Like Objectstuple -
[P2494R1]: Relaxing Range Adaptors To Allow For Move Only Types
-
[P2322R5]:
ranges :: fold -
[P2302R2]:
ranges :: contains -
[P1899R2]:
views :: stride -
[P2474R1]:
views :: repeat -
[P2508R1]: Expose
basic - format - string < charT , Args ... > -
[P2248R4]: Enabling List-Initialization For Algorithms
-
[P2404R2]: Move-Only Types For
,equality_comparable_with
, Andtotally_ordered_with three_way_comparable_with -
[P2502R1]:
std :: generator -
[P0009R14]:
mdspan -
[P2093R13]: Formatted Output
-
[P1467R7]: Extended Floating-Point Types
-
[P2278R2]:
Should Always Return A Constant Iteratorcbegin -
[P2408R4]: Ranges Iterators As Inputs To Non-Ranges Algorithms
-
[P2374R3]:
views :: cartesian_product -
[P2441R1]:
views :: join_with -
[P2446R1]:
views :: all_move -
[P2467R0]: Support Exclusive Mode For
sfstream -
[P2438R1]:
string :: substr () && -
[P2465R1]: Standard Library Modules
Andstd std . compat -
[P2387R2]: Pipe Support For User-Defined Range Adaptors
-
[P2443R0]:
views :: chunk_by -
[P2442R0]:
Andviews :: chunk views :: slide -
[P2440R0]:
,ranges :: iota
, Andranges :: shift_left ranges :: shift_right -
[P2255R2]: A Type Trait To Detect Reference Binding To Temporary
-
[P1885R8]: Naming Text Encodings To Demystify Them
-
[P2419R1]: Clarify Handling Of Encodings In Localized Formatting Of Chrono Types
-
[P2460R0]: Relax Requirements On
To Match Existing Practiceswchar_t -
[P2445R0]:
forward_like -
[P2417R0]: A More
bitsetconstexpr -
[P2485R0]: Do Not Add
Andvalue_exists
To C++23value_or -
[P0627R6]: Function To Mark Unreachable Code
-
[P2418R0]: Add Support For
-like Types Tostd :: generator std :: format -
[P2415R1]: What Is A view?
-
[P2432R0]: Fix
istream_view -
[P2351R0]: Mark All Library Static Cast Wrappers As
[[ nodiscard ]] -
[P2291R2]: Add Constexpr Modifiers To Functions
Andto_chars
For Integral Types Infrom_chars
Header< charconv > -
[P2372R1]: Fixing Locale Handling In Chrono Formatters
-
[P1206R6]:
ranges :: to -
[P0533R9]:
Forconstexpr
And< cmath > < cstdlib > -
[P2273R2]: Making unique_ptr constexpr
-
[P0323R10]:
expected -
[P2325R2]: Views Should Not Be Required To Be Default Constructible
-
[P2328R0]:
Should Join All Views Of Rangesjoin_view -
[P2210R2]: Superior String Splitting
-
[P2321R1]:
views :: zip -
[P2251R1]: Require
&span
To Be Trivially Copyablebasic_string_view -
[P1072R7]:
basic_string :: resize_and_overwrite -
[P2340R0]: Clarifying The Status Of The "C Headers"
-
[P2301R0]: Add A
Alias Forpmr stacktrace -
[P2265R0]: Renaming
any_invocable -
[P1642R5]: Freestanding [utilities], [ranges], And [iterators]
-
[P2216R2]:
Improvementsstd :: format -
[P2077R2]: Heterogeneous Erasure Overloads For Associative Containers
-
[P2136R2]:
invoke_r -
[P1951R0]: Default Arguments For
's Forwarding Constructorpair -
[P2231R0]: Missing
Inconstexpr
Andoptional variant -
[P0901R8]: Size Feedback In
operator new -
[P2212R1]: Relax Requirements For
time_point :: clock -
[P2166R1]: Prohibit
Andbasic_string
Construction Frombasic_string_view nullptr