std::ranges::basic_istream_view:: iterator

From cppreference.com
Ranges library
Range adaptors
struct /*iterator*/ ;
( exposition only* )

ranges:: basic_istream_view < Val, CharT, Traits > :: iterator is the type of the iterators returned by begin() of ranges:: basic_istream_view < Val, CharT, Traits > .

iterator is an input_iterator , but does not satisfy LegacyInputIterator , and thus does not work with pre-C++20 algorithms .

Nested types

Type Definition
iterator_concept std::input_iterator_tag
difference_type std::ptrdiff_t
value_type Val

Data members

Member Definition
ranges:: basic_istream_view < Val, CharT, Traits > parent_ a pointer to the parent view
( exposition-only member object* )

Member functions

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) The copy constructor is deleted. The iterator is not copyable.
2) The move constructor is defaulted.
3) Initializes parent_ with 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) 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)
1) Equivalent to * parent_  - > stream_ >> parent_  - > value_ .
2) Equivalent to ++* this .

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

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

Returns parent_  - > value_ .

Non-member functions

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

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

Returns ! * parent_  - > stream_ .

This function is not visible to ordinary unqualified or qualified lookup , and can only be found by argument-dependent lookup when std::ranges::basic_istream_view:: iterator is an associated class of the arguments.

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 be default_initializable
removed along with
the requirement