Created on 2024-07-07.00:00:00 last changed 1 month ago
Proposed resolution:
This wording is relative to N4981.
Modify [range.enumerate.iterator] as indicated:
namespace std::ranges {
template<view V>
requires range-with-movable-references<V>
template<bool Const>
class enumerate_view<V>::iterator {
using Base = maybe-const<Const, V>; // exposition only
public:
using iterator_category = input_iterator_tag; // present only if Base
// models forward_range
using iterator_concept = see below;
[…]
};
}
Modify [range.cartesian.iterator] as indicated:
namespace std::ranges {
template<input_range First, forward_range... Vs>
requires (view<First> && ... && view<Vs>)
template<bool Const>
class cartesian_product_view<First, Vs...>::iterator {
public:
using iterator_category = input_iterator_tag; // present only if maybe-const<Const, First>
// models forward_range
using iterator_concept = see below;
[…]
};
}
[ 2025-10-21; Reflector poll. ]
Set priority to 3 after reflector poll.
Six votes for Tentatively Ready, but not unanimous.
These two iterators do not support *r++ for non-forward iterators, so we should not provide iterator_category as they are not C++17 iterators.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2025-10-21 15:17:02 | admin | set | messages: + msg15322 |
| 2024-07-07 17:22:16 | admin | set | messages: + msg14233 |
| 2024-07-07 00:00:00 | admin | create | |