Skip to content

Replace iterator's back-pointer with previous three-iterator design#206

Merged
ednolan merged 1 commit into
mainfrom
enolan_restoreborrowedness1
May 12, 2026
Merged

Replace iterator's back-pointer with previous three-iterator design#206
ednolan merged 1 commit into
mainfrom
enolan_restoreborrowedness1

Conversation

@ednolan
Copy link
Copy Markdown
Member

@ednolan ednolan commented May 12, 2026

After considering the fact that views::adjacent means that the library has precedent for views whose iterators contain multiple iterators from the base view, and the fact that, since R10 broke .base() consistency to implement the double-transcode optimization, we no longer need the innermost-iterator machinery, I realized that it was possible to restore the three-iterator design from P2728R7 and before, and with it, the borrowedness of the view.

@coveralls
Copy link
Copy Markdown

coveralls commented May 12, 2026

Coverage Status

coverage: 99.744% (+0.006%) from 99.738% — enolan_restoreborrowedness1 into main

After considering the fact that views::adjacent<N> means that the
library has precedent for views whose iterators contain multiple
iterators from the base view, and the fact that, since R10 broke
.base() consistency to implement the double-transcode optimization, we
no longer need the innermost-iterator machinery, I realized that it
was possible to restore the three-iterator design from P2728R7 and
before, and with it, the borrowedness of the view.
@ednolan ednolan force-pushed the enolan_restoreborrowedness1 branch from 9113eb2 to c4cadcf Compare May 12, 2026 04:12
@ednolan ednolan merged commit 8be67c2 into main May 12, 2026
9 of 10 checks passed
@ednolan ednolan deleted the enolan_restoreborrowedness1 branch May 12, 2026 04:13
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

Successfully merging this pull request may close these issues.

2 participants