Files

1.6 KiB

advance

boost::iterators::advance is an adapted version of std::advance for the Boost iterator traversal concepts.

Header

<boost/iterator/advance.hpp>

Synopsis

template <typename Iterator, typename Distance>
constexpr void advance(Iterator& it, Distance n);

Description

Moves it forward by n increments (or backward by |n| decrements if n is negative).

Requirements

Iterator should model Incrementable Iterator.

Preconditions

Let iti be the iterator obtained by incrementing (or decrementing if n is negative) it by i. All the iterators iti for i = 0, 1, 2, ..., |n| should be valid.

If Iterator does not model Bidirectional Traversal Iterator, n should be non-negative.

Complexity

If Iterator models Random Access Traversal Iterator, it takes constant time; otherwise it takes linear time.

Notes

  • This function is not a customization point and is protected against being found by argument-dependent lookup (ADL).
  • This function is constexpr only in C++14 or later.

Author: Michel Morin
Copyright © 2017 Michel Morin
Distributed under the Boost Software License, Version 1.0.