Spec-Zone.ru › C++

std::ranges::basic_istream_view::iterator

struct /*iterator*/;
(с C++20)
(только для примера*)

Тип возвращаемого значения basic_istream_view::begin.

/*iterator*/ является input_iterator, но не удовлетворяет LegacyInputIterator и, следовательно, не работает с алгоритмами до C++20 algorithms.

Типы членов

Тип члена Определение
iterator_concept(C++20) std::input_iterator_tag
difference_type(C++20) std::ptrdiff_t
value_type(C++20) Val

Члены-функции

(конструктор)
(C++20)
создаёт итератор
(публичный член-функция)
operator=
(C++20)
оператор присваивания копирования удалён; оператор присваивания перемещения — единственный реализованный
(публичный член-функция)
operator++
(C++20)
перемещает итератор вперёд
(публичный член-функция)
operator*
(C++20)
возвращает текущий элемент
(публичный член-функция)

std::ranges::basic_istream_view::iterator::iterator

constexpr explicit /*iterator*/( basic_istream_view& parent );
(1) (с C++20)
/*iterator*/( const /*iterator*/& ) = delete;
(2) (с C++20)
/*iterator*/( /*iterator*/&& ) = default;
(3) (с C++20)
1) Создаёт итератор из родительского basic_istream_view.
2) Конструктор копирования удалён. Итератор не копируется.
3) Конструктор перемещения. Итератор перемещаемый.

std::ranges::basic_istream_view::iterator::operator=

/*iterator*/& operator=( const /*iterator*/& ) = delete;
(1) (с C++20)
/*iterator*/& operator=( /*iterator*/&& ) = default;
(2) (с C++20)
1) Оператор присваивания копирования удалён. Итератор не копируется.
2) Оператор присваивания перемещения. Итератор перемещаемый.

std::ranges::basic_istream_view::iterator::operator++

/*iterator*/& operator++();
(1) (с C++20)
void operator++(int);
(2) (с C++20)

Считывает значение из базового потока и сохраняет его в родительский basic_istream_view.

Возвращаемое значение

1) *this
2) (ничего)

std::ranges::basic_istream_view::iterator::operator*

Val& operator*() const;
(с C++20)

Возвращает ссылку на сохранённое значение.

Независимые функции

operator==
(C++20)
сравнивает с итератором, имеющим тот же самый родительский диапазон
(публичный член-функция)

operator==(std::ranges::basic_istream_view::iterator, std::default_sentinel)

friend bool operator==( const /*iterator*/& x, std::default_sentinel_t );
(с C++20)

Сравнивает итератор с std::default_sentinel_t.

Возвращает true, если у *this нет родительского basic_istream_view, или если в базовом потоке произошла ошибка.

Эта функция не видна для обычного прямого или явного поиска и может быть найдена только с помощью поиска зависимого от аргументов, когда std::ranges::basic_istream_view::iterator является ассоциированным классом аргументов.

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применимо к Поведение, как опубликовано Правильное поведение
P2325R3 C++20 Конструктор по умолчанию был предоставлен как итераторы C++20
должны быть определяемы по умолчанию
удалён вместе с требованием

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/basic_istream_view/iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API