ISO/IEC JTC1 SC22 WG21 N4521

Date:

Revises: N4479

Jeffrey Yasskin <jyasskin@google.com>

Merge Fundamentals V1 into V2

Rationale

When the Working Paper for the Library Fundamentals, Version 2 TS was started, we couldn't include the contents of Version 1 because we didn't want to risk that a National Body would get confused about what document the ballots for Version 1 were asking them to vote on. Now that the ballots for Library Fundamentals Version 1 are complete, this risk of confusion has gone away. We should keep the cumulative content in the latest Library Fundamentals TS version for a couple reasons:

  1. This ensures we don't lose content as we publish new TS versions. As components move into the standard, we'll remove them from the most recent TS version, focusing attention on the components that haven't moved yet.
  2. This allows us to apply issue fixes to components originally added in V1. (We only have 1 ISO work item at a time for the Fundamentals TS, so we have only 1 Working Paper.)
  3. It's not much of a "version 2" if it just contains a disjoint set of content from version 1.

Directions to the Library Fundamentals editor

Add the content approved by the editing committee for the C++ Extensions for Library Fundamentals DTS to the C++ Extensions for Library Fundamentals, Version 2 Working Draft. Move this content to the std::experimental::fundamentals_v2 namespace, instead of the std::experimental::fundamentals_v1. (The V2 TS shouldn't define any names inside the fundamentals_v1 namespace.) In the case of conflicts, keep the content from Version 2.

Other plans

When we add a library to the C++ standard, or reject it entirely, we should remove it from the next version of the Fundamentals TS.