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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::experimental::ranges::advance - std::experimental::ranges::advance

Synopsis
	  Defined in header <experimental/ranges/iterator>
	  namespace {
									  (ranges
       TS)
	      constexpr	  /*   unspecified   */	  advance   =  /*  unspecified
       (customization point
	  */;								   ob-
       ject)

	  }
	  Call signature
	  template< Iterator I >
	  constexpr void advance( I& i,	ranges::difference_type_t<I>  (1)
	  n );
	  template< Iterator I,	Sentinel<I> S >			      (2)
	  constexpr void advance( I& i,	S bound	);
	  template< Iterator I,	Sentinel<I> S >
	  constexpr ranges::difference_type_t<I> advance( I& i,	      (3)
	  ranges::difference_type_t<I> n, S bound );

	  Advances  the	 iterator  i  n	 times,	 or  until  bound  is reached,
       whichever comes first.

	  1) If	I models RandomAccessIterator, equivalent to i	+=  n.	Other-
       wise, increments	(or
	  decrements if	n is negative) i n times. The behavior is undefined if
       n is negative
	  and I	does not model BidirectionalIterator.
	  2)   If   Assignable<I&,   S>	  is  satisfied,  equivalent  to  i  =
       std::move(bound).
	  Otherwise, if	[i, bound) does	not denote a range,  the  behavior  is
       undefined.
	  Otherwise,  if  SizedSentinel<S,  I>	is  satisfied,	equivalent  to
       ranges::advance(i,
	  bound	- i).
	  Otherwise, increments	i until	i == bound.
	  3) If	SizedSentinel<S, I> is satisfied,  equivalent  to  ranges::ad-
       vance(i,	bound) if
	  |n| >= |bound	- i|, and ranges::advance(i, n)	otherwise.
	  Otherwise,  increments  (or  decrements if n is negative) i either n
       times or	until i
	  == bound, whichever comes first.
	  If n > 0, [i,	bound) shall denote a range; if	n  ==  0,  either  [i,
       bound) or
	  [bound, i) shall denote a range; if n	< 0, [bound, i)	shall denote a
       range, I	and S
	  shall	be the same type, and I	must model BidirectionalIterator. Oth-
       erwise, the
	  behavior is undefined.

Return value
	  1,2) (none)
	  3)  The number of increment/decrements not performed due to reaching
       bound. In other
	  words, n - M,	where M	is the distance	from the starting position  of
       i to the	ending
	  position and is negative if the ending position is before the	start-
       ing position.

Example
	   This	section	is incomplete
	   Reason: no example

See also
	  advance  advances an iterator	by given distance
		   (function template)
		   returns the distance	between	an iterator and	a sentinel, or
       between the
	  distance beginning and the end of a range
		   (function template)
	  next	   increment an	iterator
		   (function template)
	  prev	   decrement an	iterator
		   (function template)

Category:
	    * Todo no example

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

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

home | help