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
[range.split] confuses current and current_ #3848
Comments
This restores references to the 'current' placeholder. Fixes cplusplus#3848
The real problem here is that |
There's also a problem with [range.split.outer] p4 referring to I think it should say "Initializes |
Can we editorially rename one of them to something that looks more different? |
I think that would be a good idea. I'll push a second commit to the branch for #3849 |
This is subtle: |
At http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf#page=121 we can see that the Effects: of
split_view::outer_iterator::operator++
is supposed to use current but in the working draft [range.split.outer] p6 usescurrent_
which is not the same thing (see [range.split.outer] p1 and #3847).The same problem exists in [range.split.outer] p8 (comparison with default sentinel), and [range.split.inner] in the synopsis of
inner-iterator
(definition ofoperator*
).The original application of P0896R4 (e85af95) was consistent with P0896R4. Then 7989bb4 got rid of current and made
current_
stand in for bothcurrent_
andparent_->current_
. Then 89abe00 (fixing #3562) reintroduced current but didn't restore uses of current, leaving them incorrectly referring tocurrent_
.I think this must be fixed for C++20.
The text was updated successfully, but these errors were encountered: