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

[2018-11 LWG Motion 25] P0896R4 The One Ranges Proposal #2431

Closed
jensmaurer opened this issue Nov 10, 2018 · 8 comments
Closed

[2018-11 LWG Motion 25] P0896R4 The One Ranges Proposal #2431

jensmaurer opened this issue Nov 10, 2018 · 8 comments
Milestone

Comments

@jensmaurer
Copy link
Member

jensmaurer commented Nov 10, 2018

P0896R4

@jensmaurer jensmaurer added this to the post-2018-11 milestone Nov 10, 2018
@jensmaurer jensmaurer changed the title [2018-11 LWG Motion 25] P0896R4 (The One Ranges Proposal [2018-11 LWG Motion 25] P0896R4 The One Ranges Proposal Nov 10, 2018
@zygoloid
Copy link
Member

From @CaseyCarter:

The sources are at https://GitHub.com/ericniebler/stl2 in the ironically named ext/merge2std2 directory. I'm available to answer any questions that come up in the process. You'll need to search and replace cxxref and cxxiref with ref and iref, but otherwise the merge shouldn't be too horrific. The most complicated integrations are the algorithms changes, and I think that wording hasn't changed much in the IS since we pulled it in the n4750 era.

@CaseyCarter
Copy link
Contributor

New information: I've added a P0896R4 tag at the commit from which I generated the document which was moved in plenary to reassure you Editors that you are accessing the proper sources and not something that's been altered since.

@CaseyCarter
Copy link
Contributor

Mateusz Pusz has just pointed out to me that the specification of incrementable_traits in [incrementable.traits]/1 includes a partial specialization:

template<class I>
struct incrementable_traits<const I>
  : incrementable_traits<remove_const_t<I>> { };

in which the application of remove_const_t is extraneous: when the pattern const I matches the template argument, I and remove_const_t<I> are the same type. Is it possible to correct this editorially to:

template<class I>
struct incrementable_traits<const I>
  : incrementable_traits<I> { };

which has the same normative effect?

The specification of readable_traits in [readable.traits] has an identical occurrence.

@burblebee
Copy link
Contributor

@zygoloid @jensmaurer @tkoeppe What's the process we should follow when we get a list of sources like this? I think we'd review a diff of the sources first (how??), and if ok, create a PR directly from that. If changes are needed, we'd create a branch from the sources (how??), make the necessary modifications, and create a PR from that. I'm sure there's a way to create a patch from the sources short of creating a PR (or downloading and diffing), I just don't know how - how?

@tkoeppe
Copy link
Contributor

tkoeppe commented Nov 16, 2018

If the original diff is based on some past commit of our repo here, then it should be possible to apply that diff to a branch at that commit and then rebase that branch to the present. There'd probably be some manual work involved when rebasing, but that should hopefully cover the bulk of the work.

@CaseyCarter
Copy link
Contributor

If the original diff is based on some past commit of our repo here

Sadly, that is not the case. P0896 was created primarily by copying raw sources from the standard and then modifying them in place. Maybe make a branch here, copy over the sources from the stl2 repo, and revert the portion of the resulting changes that replaces swaths of text with [...]?

@jensmaurer
Copy link
Member Author

@burblebee: In short, the eventual goal needs to be a pull request based on a reasonably recent commit of our (not the sources') repository. The sources simply help to get there quicker, for example by being able to cut&paste large chunks of LaTeX source with lots of formatting that would otherwise need to be redone.
Yes, this particular motion will be lots of work regardless.

@zygoloid
Copy link
Member

Problem: the wording here uses syntax that CWG motion 4 removes:

concept WeaklyIncrementable =
  // ...
  requires (I i) {
    // ...
    { ++i } -> Same<I>&;   // uh-oh, this isn't valid syntax any more
    // ...
  };

I've mailed the lib reflector for advice on how to proceed.

zygoloid added a commit that referenced this issue Nov 26, 2018
P0896R4 The One Ranges Proposal

Fixes #2431
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

5 participants