Implement ranges::iota_view#1693
Conversation
Rework the implementation of P1739R4 to propose as a resolution for LWG-3407; implement the resolution of LWG-3523.
| #endif // TRANSITION, DevCom-1347136 | ||
|
|
||
| constexpr _Ioterator& operator+=(const difference_type _Off) | ||
| #if defined(__clang__) || defined(__EDG__) // TRANSITION, DevCom-1347136 |
There was a problem hiding this comment.
DevCom-1347136 is fun: the compiler warns about possible loss of data narrowing _Off in noexcept(_Current += _Off) (Yes, loss of data in an unevaluated operand.)
StephanTLavavej
left a comment
There was a problem hiding this comment.
Looks good, all I found were nitpicks!
| static_assert(same_as<ranges::range_difference_t<R>, long long>); | ||
| } | ||
|
|
||
| { |
There was a problem hiding this comment.
Is there some condition missing here?
I do not really see the benefit of that scope, as there are no other variables defined here
There was a problem hiding this comment.
Mostly the braces are here (as on other blocks) to wrap this up in a nicely self-contained chunk. It's probably my lizard brain telling me to factor this overlarge function out into separate small and simple functions. That said I acknowledge that removing this pair of braces reduces indentation but has no semantic effect. I can strike them if you think it's an improvement.
|
1, 2, 3, 4, thank you for adding more, 5, 6, 7, 8, views in |
Also rework the implementation of P1739R4 to propose as a resolution for LWG-3407, and implement the resolution of LWG-3523.