cpp/iterator/weakly incrementable

where is  if and only if  is a signed-integer-like type (see below).

This concept specifies requirements on types that can be incremented with the pre- and post-increment operators, but those increment operations are not necessarily equality-preserving, and the type itself is not required to be std.

For types,  does not imply that. Algorithms on weakly incrementable types must be single-pass algorithms. These algorithms can be used with istreams as the source of the input data through std.

Semantic requirements
models only if, for an object  of type :
 * The expressions and  have the same domain,
 * If is incrementable, then both  and  advance, and
 * If is incrementable, then.

Integer-like types
An integer-like type is an (possibly cv-qualified) integer type (except for cv ) or an implementation-provided (not user-provided) class that behaves like an integer type, including all operators, implicit conversions, and std specializations. If an integer-like type represents only non-negative values, it is unsigned-integer-like, otherwise it is signed-integer-like.