Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[container.reqmts] Relocate more container requirements #6199

Merged

Conversation

AlisdairM
Copy link
Contributor

As part of rewriting the container requirements tables as text, several paragraphs of general container requirements were buried in the new subsection for more specific requirements such as reversible containers or allocator-aware containers. This seems to have happened when general container requirements followed one of the container requirements tables that are noe expressed as text.

This PR carefully restores text to the general container requirements clause, in the original order they appeared in C++20, and audits that there are no further paragraphs to move that do not have outstanding pull requests.

As part of rewriting the container requirements tables as text,
several paragraphs of general container requirements were buried
in the new subsection for more specific requirements such as
reversible containers or allocator-aware containers.  This seems
to have happened when general container requirements followed one
of the container requirements tables that are noe expressed as
text.

This PR carefully restores text to the general container requirements
clause, in the original order they appeared in C++20, and audits that
there are no further paragraphs to move that do not have outstanding
pull requests.
@tkoeppe
Copy link
Contributor

tkoeppe commented Mar 27, 2023

@jwakely, @CaseyCarter Could you kindly have a look?

Copy link
Member

@jwakely jwakely left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this definitely needs to be fixed for C++23. In C++20 the two "Unless otherwise specified" chunks of text came after the paragraph about reversible containers: "If the iterator type of a container belongs to the bidirectional or random access iterator categories (23.3), the container is called reversible and meets the additional requirements in Table 74." In the C++23 draft, that paragraph became [container.rev.reqmts] but the following paragraphs should not have been made part of that new subclause.

Similarly, the "The behavior of certain container member functions" chunk of text came after the paragraph that became [container.alloc.reqmts], but should not have gone into that subclause.

@jwakely jwakely added this to the C++23 milestone Mar 27, 2023
@tkoeppe
Copy link
Contributor

tkoeppe commented Mar 27, 2023

Thanks!

@tkoeppe tkoeppe merged commit b2fcecd into cplusplus:main Mar 27, 2023
0 of 2 checks passed
tkoeppe pushed a commit that referenced this pull request Mar 27, 2023
As part of the replacement of the container requirements tables with text,
several paragraphs of general container requirements were buried
in the new subsections for more specific requirements such as
reversible containers or allocator-aware containers.

This seems to have happened when general container requirements
followed one of the container requirements tables that are now expressed
as text. This change carefully restores text to the general container requirements
clause, in the original order they appeared in C++20.
@AlisdairM AlisdairM deleted the relocate_container_exception_safety branch November 14, 2023 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants