Implement ranges::elements_view - #1406
Stephan T. Lavavej (StephanTLavavej) merged 16 commits into
Conversation
Co-authored-by: S. B. Tam <cpplearner@outlook.com>
|
Note that |
Awesome, thanks for the heads up 😺 |
dc93f24 to
7fc23a4
Compare
Co-authored-by: Casey Carter <cartec69@gmail.com> Co-authored-by: S. B. Tam <cpplearner@outlook.com>
7148ca2 to
9fd8550
Compare
Casey Carter (CaseyCarter)
left a comment
There was a problem hiding this comment.
Changes look good - I think we're only missing some conditional noexcept test coverage now (#1406 (comment)).
product code: * Define `iterator_concept` so the view can adapt ranges whose iterators have no `iterator_category` (This is how we've dealt with LWG-3289 elsewhere.) * Don't try to modify members of constant iterators * `_Sentinel`'s friends are not friends of `_Iterator` test: * Silence shadowing warnings by using the global `expected_keys` and `expected_values` instead of passing them to `test_one` via parameters with the same names. * Replace references to `EV` with `R` since they name the same type * Don't `forward` the same rvalue input range repeatedly
Casey Carter (CaseyCarter)
left a comment
There was a problem hiding this comment.
Changes look good - I think we're only missing some conditional
noexcepttest coverage now (#1406 (comment)).
Nice try, but you were wrong. Fixed up a few small issues and I think this is now good to go.
Stephan T. Lavavej (StephanTLavavej)
left a comment
There was a problem hiding this comment.
(This is a very incomplete review; I'll resume reviewing later this week)
Stephan T. Lavavej (StephanTLavavej)
left a comment
There was a problem hiding this comment.
This looks great, thanks! All I found were extremely minor nitpicks so I'll validate and push changes.
Stephan T. Lavavej (StephanTLavavej)
left a comment
There was a problem hiding this comment.
Casey Carter (@CaseyCarter) I pushed small changes after you approved.
... and resolve `common_view` vs. `elements_view` conflict by relocating `common_view` before `reverse_view` where it belongs.
Stephan T. Lavavej (@StephanTLavavej) I pushed what look like bug changes after you approved: |
Err, "big changes". This is too funny to edit in place, I'm leaving the typo for posterity ;) |
|
FYI Casey Carter (@CaseyCarter), I've pushed a fix after you approved, working around an internal compiler assertion in the test that I've reduced and reported. |
|
|
Thanks for implementing these crucial elements of ranges; customers will be able to view them in VS 2019 16.9 Preview 2. 😹 |
This is not fully functional as I has hit a roadblock, trying to understand why
ranges::view<EV>breaks due toranges::endnot being available.Casey Carter (@CaseyCarter): any ideas what is going on here?