Spec-Zone.ru › C++

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)
1) Конструктор копирования удалён. Итератор не поддерживает копирование.
2) Конструктор перемещения задан по умолчанию.
3) Инициализирует parent_ значением std::addressof(parent).

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)
1) Эквивалентно *parent_ ->stream_ >> parent_ ->value_.
2) Эквивалентно ++*this.

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

Val& operator*() const;
(начиная с C++20)

Возвращает parent_ ->value_.

Функции, не являющиеся членами

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

Spec-Zone.ru

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