Created on 2024-07-07.00:00:00 last changed 4 months 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; […] }; }
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 |
2024-07-07 17:22:16 | admin | set | messages: + msg14233 |
2024-07-07 00:00:00 | admin | create |