Section: 18.104.22.168 [counted.iter.const] Status: C++20 Submitter: Patrick Palka Opened: 2020-02-07 Last modified: 2021-02-25 10:48:01 UTC
View all issues with C++20 status.
P1207R4 ("Movability of single-pass iterators") introduces the notion of a move-only non-forward iterator and makes some changes to the iterator adaptor counted_iterator in order to support move-only iterators.The problem is that the constructor of counted_iterator (22.214.171.124 [counted.iter.const] p2) accepting such an iterator is specified as "Initializes current with i" which would attempt copy-constructing current from i instead of move-constructing it.
[2020-02 Prioritized as IMMEDIATE Monday morning in Prague]
This wording is relative to N4849.
Modify 126.96.36.199 [counted.iter.const] as indicated:
constexpr counted_iterator(I i, iter_difference_t<I> n);
-1- Preconditions: n >= 0.-2- Effects: Initializes current with i and length with n.