Created on 2020-01-31.00:00:00 last changed 45 months ago
Proposed resolution:
This wording is relative to N4849.
Modify [iterator.synopsis], header <iterator> synopsis, as indicated:
namespace std {
[…]
// [iterators.common], common iterators
template<input_or_output_iterator I, sentinel_for<I> S>
requires (!same_as<I, S> && copyable<I>)
class common_iterator;
[…]
}
Modify [common.iterator], class template common_iterator synopsis, as indicated:
namespace std { template<input_or_output_iterator I, sentinel_for<I> S> requires (!same_as<I, S> && copyable<I>) class common_iterator { public: […] }; […] }
[ 2020-02 Prioritized as IMMEDIATE Monday morning in Prague ]
We don't actually specify anywhere that non-copyable iterators do not have a common_iterator (and it would make little sense for them to as algorithms dealing with C++17 iterators are not expecting non-copyable things) As it stands common_iterator can be created from move only iterator but are then non-copyable themselves. P1862 already constrains common_view in a similar fashion
History | |||
---|---|---|---|
Date | User | Action | Args |
2021-02-25 10:48:01 | admin | set | status: wp -> c++20 |
2020-02-24 16:02:59 | admin | set | status: immediate -> wp |
2020-02-10 19:13:13 | admin | set | messages: + msg11020 |
2020-02-10 19:13:13 | admin | set | status: new -> immediate |
2020-02-01 16:45:21 | admin | set | messages: + msg10982 |
2020-01-31 00:00:00 | admin | create |