On 07/02/20 13:59 -0500, Patrick Palka wrote:
Since basic_istream_view::iterator is neither a cpp17 iterator (because it's
move-only) nor does it define all four of the types {difference_type,
value_type, reference, iterator_category}, then by the rule in
[iterator.traits], its iterator_traits has no members.

More concretely this means that it can't e.g. be composed with a
views::transform or a views::filter because they look at the iterator_traits of
the underlying view.

This seems to be a defect in the current spec.

Agreed, but Casey Carter doesn't think this fix is correct, as it
would make this iterator appear to be a Cpp17InputIterator, which is
unwanted.

Please don't make this change, we should wait for guidance from LWG.

Reply via email to