Adopt LWG-3546 common_iterator's postfix-proxy is not quite right#1991
Adopt LWG-3546 common_iterator's postfix-proxy is not quite right#1991CaseyCarter merged 11 commits intomicrosoft:mainfrom
common_iterator's postfix-proxy is not quite right#1991Conversation
We currently have no real infrastructure to test move only iterators, we should discuss that Addresses microsoft#1965
common_iterator's postfix-proxy is not quite right
timsong-cpp
left a comment
There was a problem hiding this comment.
This issue is a patch for the common_iterator part of WG21-P2259, and I'm not sure how much sense it makes to implement just it without the other common_iterator changes.
I made a mental note to investigate because I was baffled how we could have missed that proxy case. As is obvious now it should have been a written note ;) I agree that we should merge this with the P2259 changes |
|
I plan to have a fresh look at this next week |
|
@CaseyCarter I believe this should be good for another round of review. I did not add test coverage for the exotic cases though |
There was a problem hiding this comment.
Stuff needs fixing here; it may make more sense to implement this in the P2259 PR (#2059) or wait until that PR has been completed to finish this.
This comment has been minimized.
This comment has been minimized.
|
@CaseyCarter I believe I addressed your comments, so this should be good for another round of review |
Co-authored-by: S. B. Tam <cpplearner@outlook.com>
* Move all the conditions for using the postfix-proxy into the helper concept for maximal short-circuiting benefit. * Notice that the postfix-proxy reads from the iterator without requiring it to be `indirectly_readable`, add constraint and submit LWG issue to fix. * Factor commonolity out of two proxy types into a common base * drive-by fix the constraint on `operator->` by requiring `i.operator->()` to be valid for a `const _Iter` lvalue instead of and `_Iter` rvalue.
|
I'm mirroring this to an MSVC-internal PR. Please notify me if any further changes are pushed. |
|
Thanks for helping to make |
…microsoft#1991) Addresses microsoft#1965 Co-authored-by: S. B. Tam <cpplearner@outlook.com> Co-authored-by: Casey Carter <Casey@Carter.net>
Currently we are lacking the testing infrastructure for move only iterators.
Should we add it?