FreeBSD Manual Pages
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)
NAME | Synopsis | Return value | Example | See also | Category:
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>
