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

[alg.unique] p7.2.3 is very crowded #2963

Closed
cjdb opened this issue Jul 9, 2019 · 2 comments
Closed

[alg.unique] p7.2.3 is very crowded #2963

cjdb opened this issue Jul 9, 2019 · 2 comments

Comments

@cjdb
Copy link
Contributor

cjdb commented Jul 9, 2019

This bullet is extremely crowded: would it be possible for this to be broken up into several smaller bullets please?

@CaseyCarter
Copy link
Contributor

CaseyCarter commented Jul 9, 2019

IIRC we try to avoid triply-nested lists. I suppose we could outdent 7.2.3 to 7.3 by conjoining the requirement from 7.2, and then split into sub-bullets case-wise:

(7.2) — For the overloads in namespace std:
(7.2.1) — The comparison function shall be an equivalence relation.
(7.2.2) — The expression *result = *first shall be valid.
(7.2.3) — [Note: For the overloads with an ExecutionPolicy, there may be a performance cost if the value type of ForwardIterator1 does not meet both the Cpp17CopyConstructible and Cpp17CopyAssignable requirements. —end note]
(7.3) — Additionally, for the overloads in namespace std with no ExecutionPolicy, let T be the value type of InputIterator.
(7.3.1) — If InputIterator meets the Cpp17ForwardIterator requirements, then there are no additional requirements for T.
(7.3.2) — Otherwise, if OutputIterator meets the Cpp17ForwardIterator requirements and its value type is the same as T, then T shall meet the Cpp17CopyAssignable requirements.
[...]
(7.3.3) — Otherwise, T shall meet both the Cpp17CopyConstructible and Cpp17CopyAssignable requirements.

Note that I've left the note - which pertains to the overloads in std with an ExecutionPolicy - in 7.2.3 instead of keeping it hidden at the end of a bunch of specification for the non-ExecutionPolicy overloads.

I'll prepare a PR with this reformulation if this comment gets more 👍 than 👎.

@jensmaurer jensmaurer added the decision-required A decision of the editorial group (or the Project Editor) is required. label Aug 6, 2019
@jensmaurer jensmaurer removed the decision-required A decision of the editorial group (or the Project Editor) is required. label Sep 10, 2019
@jensmaurer jensmaurer added the decision-required A decision of the editorial group (or the Project Editor) is required. label Apr 22, 2020
@jensmaurer jensmaurer removed the decision-required A decision of the editorial group (or the Project Editor) is required. label May 28, 2021
@tkoeppe
Copy link
Contributor

tkoeppe commented May 28, 2021

I think this wording has already changed now to fold the nested list into a single paragraph. This should be fine now, but please reopen if it's still not as good as it should be, @CaseyCarter.

@tkoeppe tkoeppe closed this as completed May 28, 2021
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

No branches or pull requests

4 participants