home | help
std::experi...ardIterator(3)   C++ Standard Libary  std::experi...ardIterator(3)

NAME
     std::experimental::ranges::ForwardIterator 	-	 std::experimen-
     tal::ranges::ForwardIterator

Synopsis
	Defined in header <experimental/ranges/iterator>
	template< class I >

	concept bool ForwardIterator =
	    InputIterator<I> &&
	    DerivedFrom<ranges::iterator_category_t<I>,
     (ranges TS)
	ranges::forward_iterator_tag> &&
	    Incrementable<I> &&

	    Sentinel<I, I>;

	The concept ForwardIterator<I> refines InputIterator by adding	equality
     comparison
	and the multi-pass guarantee.

	The  domain  of  ==  for forward iterators is that of iterators over the
     same underlying
	sequence, except that value-initialized iterators of the same  type  may
     be compared
	with each other and shall compare equal.

	Pointers  and  references  obtained from a forward iterator into a range
     [i, s) must
	remain valid while [i, s) continues to denote a range.

	Let a and b be two dereferenceable iterators of  type  I.  ForwardItera-
     tor<I> is
	satisfied only if:

	  * a == b implies ++a == ++b; and
	  *  The  expression ([](X x){ ++x; }(a), *a) is equivalent to *a, i.e.,
     incrementing
	    a copy of a has no effect on the result of dereferencing a.

	This is known as the multi-pass guarantee.

Notes
	A forward iterator cannot be "stashing": it cannot return a reference to
     an object
	within itself, because such references would be invalidated by	the  de-
     struction of
	the forward iterator.

http://cppreference.com 	   2024.06.10	    std::experi...ardIterator(3)

home | help