Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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 deferenceable 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	refer-
       ence to an object
	  within  itself,  because such	references would be invalidated	by the
       destruction of
	  the forward iterator.

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

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::ranges::ForwardIterator&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help