home | help
std::ranges...ew::iterator(3)  C++ Standard Libary std::ranges...ew::iterator(3)

NAME
     std::ranges::basic_istream_view::iterator	       -	std::ranges::ba-
     sic_istream_view::iterator

Synopsis
	struct /*iterator*/;  (since C++20)
			      (exposition only*)

	The return type of basic_istream_view::begin.

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

Member types
	Member type		 Definition
	iterator_concept (C++20) std::input_iterator_tag
	difference_type (C++20)  std::ptrdiff_t
	value_type (C++20)	 Val

Member functions
	constructor   constructs an iterator
	(C++20)       (public member function)
	operator=     the copy assignment operator is deleted;	/*iterator*/  is
     move-only
	(C++20)       (public member function)
	operator++    advances the iterator
	(C++20)       (public member function)
	operator*     returns the current element
	(C++20)       (public member function)

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

	constexpr  explicit  /*iterator*/(  basic_istream_view&  parent  );  (1)
     (since C++20)
	/*iterator*/(  const  /*iterator*/&  )	=  delete;		     (2)
     (since C++20)
	/*iterator*/(	/*iterator*/&&	)  =  default;			     (3)
     (since C++20)

	1) Constructs an iterator from the parent basic_istream_view.
	2) The copy constructor is deleted. The iterator is not copyable.
	3) The move constructor is defaulted. The iterator is movable.

     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  copy-
     able.
	2) The move assignment operator is defaulted. The iterator is movable.

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

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

	Reads a value from the underlying stream and stores it into the parent
	basic_istream_view.

Return value
	1) *this
	2) (none)

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

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

	Returns a reference to the stored value.

Non-member functions
	operator== compares with a std::default_sentinel_t
	(C++20)    (public member function)

     operator==(std::ranges::basic_istream_view::iterator,     std::default_sen-
     tinel)

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

	Compares an iterator with std::default_sentinel_t.

	Returns  true  if *this does not have a parent basic_istream_view, or if
     an error has
	occurred on the underlying 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	retroac-
     tively to
	previously published C++ standards.

	  DR	Applied to	     Behavior as published		 Correct
     behavior
			   default  constructor  was  provided as C++20  removed
     along with the
	P2325R3 C++20	    iterators					require-
     ment
			   must be default_initializable

http://cppreference.com 	   2024.06.10	   std::ranges...ew::iterator(3)

home | help