std::ranges::basic_istream_view::iterator
struct /*iterator*/; | (только для иллюстрации*) |
ranges::basic_istream_view<Val,CharT,Traits>::iterator — это тип итераторов, возвращаемых begin() для ranges::basic_istream_view<Val,CharT,Traits>.
iterator является input_iterator, но не удовлетворяет требованиям LegacyInputIterator и поэтому не работает с алгоритмами до C++20.
Вложенные типы
| Тип | Определение |
|---|---|
iterator_concept |
std::input_iterator_tag |
difference_type |
std::ptrdiff_t |
value_type |
Val |
Члены-данные
| Член | Описание |
|---|---|
ranges::basic_istream_view<Val,CharT,Traits> parent_ | указатель на родительское представление (объект-член только для иллюстрации*) |
Функции-члены
std::ranges::basic_istream_view::iterator::iterator
/*iterator*/( const /*iterator*/& ) = delete; | (1) | (начиная с C++20) |
/*iterator*/( /*iterator*/&& ) = default; | (2) | (начиная с C++20) |
constexpr explicit /*iterator*/( basic_istream_view& parent ); | (3) | (начиная с C++20) |
std::ranges::basic_istream_view::iterator::operator=
/*iterator*/& operator=( const /*iterator*/& ) = delete; | (1) | (начиная с C++20) |
/*iterator*/& operator=( /*iterator*/&& ) = default; | (2) | (начиная с C++20) |
std::ranges::basic_istream_view::iterator::operator++
/*iterator*/& operator++(); | (1) | (начиная с C++20) |
void operator++(int); | (2) | (начиная с C++20) |
++*this.std::ranges::basic_istream_view::iterator::operator*
Val& operator*() const; | (начиная с C++20) |
Функции, не являющиеся членами
operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)
friend bool operator==( const /*iterator*/& x, std::default_sentinel_t ); | (начиная с C++20) |
Возвращает !*parent_ ->stream_.
Эта функция не видна при обычном неквалифицированном или квалифицированном поиске и может быть найдена только посредством поиска, зависящего от аргументов, если std::ranges::basic_istream_view::iterator является ассоциированным классом аргументов.
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применялся к | Поведение согласно опубликованной версии | Правильное поведение |
|---|---|---|---|
| P2325R3 | C++20 | конструктор по умолчанию был предоставлен в C++20 итераторы должны были удовлетворять требованиям default_initializable | удалён вместе с этим требованием |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/ranges/basic_istream_view/iterator