Namespaces
Variants

std::ranges::basic_istream_view:: iterator

From cppreference.net
Ranges library
Range adaptors
struct /*iterator*/ ;
( только для демонстрации* )

ranges:: basic_istream_view < Val, CharT, Traits > :: iterator — это тип итераторов, возвращаемых begin() для ranges:: basic_istream_view < Val, CharT, Traits > .

iterator является input_iterator , но не удовлетворяет требованиям LegacyInputIterator , и поэтому не работает с алгоритмами algorithms до 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) (since C++20)
/*iterator*/ ( /*iterator*/ && ) = default ;
(2) (since C++20)
constexpr explicit /*iterator*/ ( basic_istream_view & parent ) ;
(3) (since C++20)
1) Конструктор копирования удалён. Итератор не поддерживает копирование.
2) Конструктор перемещения объявлен по умолчанию.
3) Инициализирует parent_ значением std:: addressof ( parent ) .

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) Оператор копирующего присваивания удалён. Итератор не является копируемым.
2) Оператор перемещающего присваивания задан по умолчанию.

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

/*iterator*/ & operator ++ ( ) ;
(1) (since C++20)
void operator ++ ( int ) ;
(2) (since C++20)
1) Эквивалентно * parent_  - > stream_ >> parent_  - > value_ .
2) Эквивалентно ++* this .

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

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

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

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

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

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

Возвращает ! * parent_  - > stream_ .

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

Отчеты о дефектах

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

DR Applied to Behavior as published Correct behavior
P2325R3 C++20 конструктор по умолчанию был предоставлен как C++20
итераторы должны быть default_initializable
удалён вместе с
требованием