Adobe Source Libraries 1.49.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
ConvertibleToRange
Description
ConvertibleToRange denotes a sequence of the form: [begin, end). The elements of the range are the beginning element to the element before the end element. The following are examples of ranges:
  • A container, denotes a range [container.begin(), container.end())
  • An array, denotes a range [array[0], array[sizeof(array)/sizeof(array[0])])
  • An std::pair of iterators denotes a range [pair.first, pair.last)
Refinement Of
Associated Type(s)
Notation
XA type that is a model of ConvertibleToRange
xObject of type X
IA type for iterating over objects of type X
p, qObjects of type I
Definitions
Valid Iterator
p is a valid iterator in x if it is a valid (nonsingular) iterator that is reachable from adobe::begin(x).
Valid Range
[p, q) is a valid range in x if p and q are valid iterators in x and if q is reachable from p.
Valid Expressions
Expression Semantics
Complexity Guarantee(s)
Invariants
Range Size
adobe::size(x) is equal to the distance from adobe::begin(x) to adobe::end(x).
Completeness
An algorithm that iterates through the range [adobe::begin(x), adobe::end(x)) will pass through every element of x. [1]
Notes
[1] The order in which the elements appear in any range is unspecified, even between two iterations where the range has had no intervening mutative operations.