std::experimental::ranges::Incrementable

Header: <experimental/ranges/iterator>

The concept Incrementable specifies the requirements on a type that can be incremented (with the pre- and post-increment operators). The increment operations (including those required by WeaklyIncrementable) are required to be equality-preserving, and the type is required to be EqualityComparable.

# Declarations

template< class I >
concept bool Incrementable =
Regular<I> &&
WeaklyIncrementable<I> &&
requires(I i) {
{ i++ } -> Same<I>&&;
};

(ranges TS)

# Notes

The requirement that a equals b implies ++a equals ++b allows the use of multi-pass algorithms with Incrementable types.