concept bool WeaklyIncrementable =
Semiregular<I> &&
requires(I i) {
typename ranges::difference_type_t<I>;
requires SignedIntegral<ranges::difference_type_t<I>>;
{ ++i } -> Same<I>&; /* not required to be equality preserving */
i++; /* not required to be equality preserving */
The concept WeaklyIncrementable<I>
specifies the requirements on a type that can be incremented (with the pre- and post-increment operators). The increment operations need not be equality-preserving, and the type need not be EqualityComparable
.
Let i be an object of type I
. i is said to be incrementable if it is in the domain of both pre- and post-increment. WeaklyIncrementable<I>
is satisfied only if:
An expression is equality preserving if it results in equal outputs given equal inputs.
Every expression required to be equality preserving is further required to be stable: two evaluations of such an expression with the same input objects must have equal outputs absent any explicit intervening modification of those input objects.
[edit] NotesFor WeaklyIncrementable
types, a equals b does not imply that ++a equals ++b. Algorithms on such types should be single pass and never attempt to pass through the same value twice.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4