Section: 184.108.40.206 [range.iota.iterator] Status: WP Submitter: Zoe Carver Opened: 2021-08-14 Last modified: 2021-10-14 09:56:08 UTC
Priority: Not Prioritized
View other active issues in [range.iota.iterator].
View all other issues in [range.iota.iterator].
View all issues with WP status.
iota_view's iterator's operator+ could avoid a copy construct by doing "i += n; return i" rather than "return i += n;" as seen in 220.127.116.11 [range.iota.iterator].This is what libc++ has implemented and shipped, even though it may not technically be conforming (if a program asserted the number of copies, for example). It might be good to update this operator and the minus operator accordingly.
[2021-08-20; Reflector poll]
Set status to Tentatively Ready after six votes in favour during reflector poll.
[2021-10-14 Approved at October 2021 virtual plenary. Status changed: Voting → WP.]
This wording is relative to N4892.
Modify 18.104.22.168 [range.iota.iterator] as indicated:
friend constexpr iterator operator+(iterator i, difference_type n) requires advanceable<W>;
-20- Effects: Equivalent to:
returni += n;friend constexpr iterator operator+(difference_type n, iterator i) requires advanceable<W>;
-21- Effects: Equivalent to: return i + n;friend constexpr iterator operator-(iterator i, difference_type n) requires advanceable<W>;
-22- Effects: Equivalent to:
returni -= n;