struct/*iterator*/; | | (exposition only*) |
| | |
ranges::basic_istream_view<Val, CharT, Traits>::iterator
is the type of the iterators returned bybegin()
ofranges::basic_istream_view<Val, CharT, Traits>.
iterator
is aninput_iterator
, but does not satisfyLegacyInputIterator, and thus does not work with pre-C++20algorithms.
[edit]Nested types
[edit]Data members
Member | Definition |
ranges::basic_istream_view<Val, CharT, Traits>parent_ | a pointer to the parent view (exposition-only member object*) |
[edit]Member functions
std::ranges::basic_istream_view::iterator::iterator
/*iterator*/(const/*iterator*/&)= delete; | (1) | (since C++20) |
/*iterator*/(/*iterator*/&&)=default; | (2) | (since C++20) |
constexprexplicit/*iterator*/( basic_istream_view& parent); | (3) | (since C++20) |
| | |
1) The copy constructor is deleted. The iterator is not copyable.
2) The move constructor is defaulted.
std::ranges::basic_istream_view::iterator::operator=
/*iterator*/& operator=(const/*iterator*/&)= delete; | (1) | (since C++20) |
/*iterator*/& operator=(/*iterator*/&&)=default; | (2) | (since C++20) |
| | |
1) The copy assignment operator is deleted. The iterator is not copyable.
2) The move assignment operator is defaulted.
std::ranges::basic_istream_view::iterator::operator++
/*iterator*/& operator++(); | (1) | (since C++20) |
void operator++(int); | (2) | (since C++20) |
| | |
2) Equivalent to++*this.
std::ranges::basic_istream_view::iterator::operator*
Val& operator*()const; | | (since C++20) |
| | |
Returnsparent_
->value_
.
[edit]Non-member functions
[edit]Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|
P2325R3 | C++20 | default constructor was provided as C++20 iterators must bedefault_initializable | removed along with the requirement |