Doc. no. P2708R1
Date: 2022-11-10
Project: Programming Language C++
Audience: LWG
Reply to: Alisdair Meredith <ameredith1@bloomberg.net>
Bryce Adelstein Lelbach <brycelelbach@gmail.com>
Nevin Liber <nliber@anl.gov>
Fabio Fracassi <f.fracassi@gmx.net>
Ben Craig <ben.craig@gmail.com>

No Further Fundamentals TSes

Table of Contents

  1. Rationale
  2. Formal Wording
  3. References

Revision History

Original

Original version of the paper as reviewed by LEWG in Kona, 2022.

Revision 1

Update reviewed by LEWG in Kona, 2022.

1 Rationale

The original inspiration for the Library Fundamentals Technical Specification was to create a testing ground that run through the process rapidly, enabling us to evaluate and standardize libraries with more confidence. This direction was chosen shortly after C++11 was finally published after an 8 year development cycle, and we did not want to risk such long delays evaluating future libraries.

Since the first TS was commissioned, we have adopted the train model for delivering C++ standards, and have now established a reliable cadence of publishing a new standard every 3 years. The concern of a slow release schedule has been mitigated.

Meanwhile, in practice, the work to deliver a feature into the Library Fundamentals TS has been no less than adopting a feature into the main standard. The Library Fundamentals TS is generally seen as lower priority than the standard when allocating committee time, so Fundamentals libraries are often delayed as a result of our TS process.

Further, now that we are familiar with the train model release cycle, we are more confident in adopting proposals directly into the standard. This is a different committee culture than that which delivered the early standards.

Looking forward, the consensus of the Library Evolution Working Group is that we do not intend to send further proposals to a general purpose TS like Library Fundamentals, but will standardize with confidence.

This proposal makes clear the intent that no more Library Fundamentals TSes are planned, and updates Library Fundamentals v3 to make this clear, so that we do not suggest intent that we are not going to follow through on.

2 Proposed Wording

Make the following edit to the library fundamentals TS draft:

1.4 Future plans (Informative) [general.plans]

This section describes tentative plans for future versions of this technical specification and plans for moving content into future versions of the C++ Standard.

The C++ committee intends to release new versions of this technical specification periodically, containing the library extensions we hope to add to a near-future version of the C++ Standard. F This is the last in a series of revisions of this technical specification planned by the C++ committee; while there are no plans to resume the series, any future versions will define their contents in std::experimental::fundamentals_v4, std::experimental::fundamentals_v5, etc., with the most recent implemented version inlined into std::experimental.

When an extension defined in this or a future version of this technical specification represents enough existing practice, it will be moved into the next version of the C++ Standard by removing the experimental::fundamentals_vN segment of its namespace and by removing the experimental/ prefix from its header's path.

3 References