-
Notifications
You must be signed in to change notification settings - Fork 749
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
[std] Update references to [container.requirements.general] #6184
Comments
…ntainer.requirements.general] All the references for "qualifies as an input iterator" and "qualifies as an allocator" are supposed to be to [container.reqmts] p69 which begins: > The behavior of certain container member functions and deduction > guides depends on whether types qualify as input iterators or > allocators. The reference in [string.require] for obtaining an allocator should be to [container.reqmts] p64. The reference in [string.require] Note 2 should be to [container.requirements.pre] p3. Fixes #6184
N.B. this is a regression. In C++20 all of [container.reqmts] and [container.requirement.pre] and [container.requirements.general] was one big subclause called [container.requirements.general], so the refs were correct. Looking at it now, I feel like we could have done better with the new subclause names. We currently have this structure under 24.2:
The preamble is fine, and the new structure is fine, but the names could be improved. "24.2.2.1 General [container.requirements.general]" is actually just two paragraphs introducing some placeholder names for the following subclauses. Maybe this would be better:
This would not have broken the xrefs, because anything referring to [container.requirements.general] (including material outside the standard, like old proposals and Stack Overflow answers, etc.) would still be referring the the entire subclause containing all those requirements. Those refs could be more precise, pointing to one of the new subclauses like [container.alloc.reqmts], but they wouldn't be wrong (as they are now, because they just point to the two paragraphs introducing placeholder names). |
@tkoeppe is it too late to rename those stable tags for C++23? |
We're still in the process of submitting the DIS, and I expect it to come back at least once, so I'm happy to add a few more changes for the next round! |
OK, I'll prepare a PR. It might take a few hours to make sure I've done it correctly ... |
…ntainer.requirements.general] All the references for "qualifies as an input iterator" and "qualifies as an allocator" are supposed to be to [container.reqmts] p69 which begins: > The behavior of certain container member functions and deduction > guides depends on whether types qualify as input iterators or > allocators. The reference in [string.require] for obtaining an allocator should be to [container.reqmts] p64. The reference in [string.require] Note 2 should be to [container.requirements.pre] p3. Fixes #6184
No worries, I haven't heard back from ISO yet! |
….general] This should refer to [container.alloc.reqmts] for an allocator-aware container. Fixes #6184
There are no more cross-references to [container.gen.reqmts] or [container.requirements.general], so this doesn't affect anything else. Related to #6184
….general] This should refer to [container.alloc.reqmts] for an allocator-aware container. Fixes cplusplus#6184
There are no more cross-references to [container.gen.reqmts] or [container.requirements.general], so this doesn't affect anything else. Related to cplusplus#6184
There are no more cross-references to [container.gen.reqmts] or [container.requirements.general], so this doesn't affect anything else. Related to #6184
….general] This should refer to [container.alloc.reqmts] for an allocator-aware container. Fixes #6184
There are no more cross-references to [container.gen.reqmts] or [container.requirements.general], so this doesn't affect anything else. Related to #6184
…ntainer.requirements.general] All the references for "qualifies as an input iterator" and "qualifies as an allocator" are supposed to be to [container.reqmts] p69 which begins: > The behavior of certain container member functions and deduction > guides depends on whether types qualify as input iterators or > allocators. The reference in [string.require] for obtaining an allocator should be to [container.reqmts] p64. The reference in [string.require] Note 2 should be to [container.requirements.pre] p3. Fixes cplusplus#6184
…ntainer.requirements.general] All the references for "qualifies as an input iterator" and "qualifies as an allocator" are supposed to be to [container.reqmts] p69 which begins: > The behavior of certain container member functions and deduction > guides depends on whether types qualify as input iterators or > allocators. The reference in [string.require] for obtaining an allocator should be to [container.reqmts] p64. The reference in [string.require] Note 2 should be to [container.requirements.pre] p3. Fixes cplusplus#6184
The entirety of [container.requirements.general] is a list of items of the form
yet there are many references to this subclause, which probably need updating. For example
The text was updated successfully, but these errors were encountered: