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

Motions 2019 11 lwg 16: P1870R1 forwarding-range<T> is too subtle #3486

Merged
merged 3 commits into from Nov 24, 2019

Conversation

burblebee
Copy link
Contributor

@burblebee burblebee commented Nov 18, 2019

Fixes #3418.

Issues with paper:

  • [range.access.begin]/p1 adds "Given a subexpression E and an lvalue t that denotes the same object as E", but E is a subexpression, not an object.
    Same for [range.access.end]/p1, [range.access.rbegin]/p1, and [range.access.rend]/p1.
  • [range.range] range-impl is removed but is still referenced in p2 and p3.

Other editorial issues:

  • cv-unqualified or \cv-unqualified?
    The spec is inconsistent in its representation of cv-unqualified v. /cv/-unqualified.
  • When to use \deflibconcept?
    Some concept definitions in the library use \deflibconcept, others don't.
    Also fix inconsistencies in the of \defexposconcept for \expos concepts.
  • The library is inconsistent in its use of \exposconcept v. \tcode{\placeholder

Fixes cplusplus/papers#620
Fixes cplusplus/nbballot#275
Fixes cplusplus/nbballot#276
Fixes cplusplus/nbballot#272

@CaseyCarter
Copy link
Contributor

E is a subexpression, not an object

I think we mean to say that t is an lvalue that denotes the result of E; my core-speak is failing me here.

[range.range] range-impl is removed but is still referenced in p2 and p3.

The intent is that these references to range-impl be replaced by references to range. P2 is still a mess, however, since it refers to "The required expressions ranges::begin(std::forward<T>(t)) and ranges::end(std::forward<T>(t)) ..." which need to be changed to "The required expressions ranges::begin(t) and ranges::end(t) ...".

I won't even try to rationalize this rewording as "Editorial".

@jensmaurer jensmaurer added this to the post-2019-11 milestone Nov 19, 2019
@jensmaurer
Copy link
Member

jensmaurer commented Nov 19, 2019

cv-unqualified or \cv-unqualified?

I think we want "cv-qualified" and "cv-unqualified". We only use \cv{} if it is a placeholder for a (specific) set of cv-qualifiers.

When to use \deflibconcept?

The intent is to use \deflibconcept where we actually show the definition of a library concept (i.e. not in the header synopsis if we have an itemdecl).

The library is inconsistent in its use of \exposconcept v. \tcode{\placeholder

Yes, there are probably still a few issues like this left over. [Update: see #3494]

@burblebee
Copy link
Contributor Author

@CaseyCarter

I think we mean ...
...
I won't even try to rationalize this rewording as "Editorial".

I've emailed @brevzin and lwgchair for direction on what to do... Would have cc'ed you but don't have your email address :)

@burblebee burblebee added the changes requested Changes to the wording or approach have been requested and not yet applied. label Nov 19, 2019
@zygoloid zygoloid force-pushed the motions-2019-11-lwg-16 branch 3 times, most recently from 7e5fa21 to 9542e55 Compare November 24, 2019 02:14
Dawn Perchik and others added 3 commits November 23, 2019 18:18
Also fixes NB US 279, US 279, and GB 280 (C++20 CD).
exposition-only concepts range-impl and forwarding-range with range and
safe_range as appropriate.
@zygoloid zygoloid removed the changes requested Changes to the wording or approach have been requested and not yet applied. label Nov 24, 2019
@zygoloid zygoloid merged commit 5149fdf into master Nov 24, 2019
@jensmaurer jensmaurer deleted the motions-2019-11-lwg-16 branch February 18, 2020 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment