P2489R0
Library Evolution Plan for Completing C++23

Published Proposal,

Authors:
(NVIDIA)
(CODE University of Applied Sciences)
(NI)
(FlightSafety)
(Argonne National Laboratory)
(The Qt Company)
(Israeli National Body Chair)
Source:
GitHub
Issue Tracking:
GitHub
Project:
ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++
Audience:
WG21

1. Introduction

This paper describes Library Evolution leadership’s plan for the end of the C++23 design cycle. C++23 must be feature complete by 2021-02-07, approximately 3 months from the publication of this paper.

2. Focus

The C++ Committee’s time and resources are limited. We must use them wisely, which means we must focus and that means making hard decisions. If we split our focus and try to do too many things, we will be unable to accomplish anything.

Library Evolution leadership has triaged active Library Evolution papers and determined which work we believe has a reasonable chance of making it into C++23. Until the C++23 feature complete date, we will focus all our resources on that work, and defer all other work.

Our decisions were based upon:

2.1. Objectives for C++23

The following is what we will work on delivering in the rest of the C++23 design cycle. This is by no means a guarantee that these facilities will make it into C++23.

We will commit significant time and resources to the following work, which has previously been identified as priorities:

We would commit significant time and resources to the following work, which has previously been identified as ppriorities, however this work is currently blocked waiting for revisions or new authors:

We will commit time and resources to the following work, which is mature, important to a wide audience, and likely to be design approved after an additional round of review:

2.2. Possible for C++23

All of this work is relatively small in size, but doesn’t warrant a high priority. However, this work is a good fit for mailing list review, and thus could be advanced without taking substantial effort away from § 2.1 Objectives for C++23.

The following work has already been through at least one round of mailing list review. If mailing list reviews of this work are non-controversial, this work could be advanced directly from mailing list review to electronic polls and make it to C++23.

The following work involves some degree of breaking change. As such, it would probably require a telecon to advance. If it can be refined through mailing list review, there is a small possibility that telecon time could be committed to this work:

2.3. Not for C++23

Unfortunately, there is some active work that is unlikely to get into C++23. Our time and resources are limited, so we must stop working on these things until the end of the C++23 design cycle in 2022-02. Spending effort on any of these things for C++23 would mean some of the work listed in § 2.1 Objectives for C++23 would have to be deferred until after C++23.

This work is large and will likely need multiple rounds of review and revision before it can advance:

This work was reviewed on the mailing list, and we don’t believe it can advance without a telecon review:

This work is new and either in early review or has not been reviewed:

This work is blocked waiting for revisions or new authors:

3. Telecons

We will use our weekly telecons to advance C++23 work until 2021-01-18, which is when we will start the final Library Evolution electronic polls for C++23 (see § 4 Polls).

We will not hold meetings the last two weeks of 2021 due to holidays.

As per Library Evolution decision at the end of the 2021 October supertelecon, we will hold two day Library Evolution supertelecons in 2021-12 and 2022-01 to work on P2300 (std::execution).

All telecons have been added to the Committee calendar and the Library Evolution wiki.

3.1. 2021-12 Library Evolution Supertelecon

3.2. 2022-01 Library Evolution Supertelecon

4. Polls

Library Evolution will conduct three electronic polling periods to advance work for C++23, one per month.

4.1. 2021-11 Polling Period

This polling period is already underway at the time of publication of this paper.

4.2. 2021-12 Polling Period

4.3. 2022-01 Polling Period

This is the final polling period for shipping Standard Library features for C++23.