[range.iter.op.next] (original) (raw)

23 Iterators library [iterators]

23.4 Iterator primitives [iterator.primitives]

23.4.4 Range iterator operations [range.iter.ops]

23.4.4.4 ranges​::​next [range.iter.op.next]

🔗

template<[input_­or_­output_­iterator](iterator.concept.iterator#concept:input%5For%5Foutput%5Fiterator "23.3.4.6 Concept input_­or_­output_­iterator [iterator.concept.iterator]") I> constexpr I ranges::next(I x);

1

#

Effects: Equivalent to: ++x; return x;

🔗

template<[input_­or_­output_­iterator](iterator.concept.iterator#concept:input%5For%5Foutput%5Fiterator "23.3.4.6 Concept input_­or_­output_­iterator [iterator.concept.iterator]") I> constexpr I ranges::next(I x, iter_difference_t<I> n);

2

#

Effects: Equivalent to: ranges​::​advance(x, n); return x;

🔗

template<[input_­or_­output_­iterator](iterator.concept.iterator#concept:input%5For%5Foutput%5Fiterator "23.3.4.6 Concept input_­or_­output_­iterator [iterator.concept.iterator]") I, [sentinel_­for](iterator.concept.sentinel#concept:sentinel%5Ffor "23.3.4.7 Concept sentinel_­for [iterator.concept.sentinel]")<I> S> constexpr I ranges::next(I x, S bound);

3

#

Effects: Equivalent to: ranges​::​advance(x, bound); return x;

🔗

template<[input_­or_­output_­iterator](iterator.concept.iterator#concept:input%5For%5Foutput%5Fiterator "23.3.4.6 Concept input_­or_­output_­iterator [iterator.concept.iterator]") I, [sentinel_­for](iterator.concept.sentinel#concept:sentinel%5Ffor "23.3.4.7 Concept sentinel_­for [iterator.concept.sentinel]")<I> S> constexpr I ranges::next(I x, iter_difference_t<I> n, S bound);

4

#

Effects: Equivalent to: ranges​::​advance(x, n, bound); return x;