stlab.adobe.com Adobe Systems Incorporated

ConvertibleToRange
[Concepts]

Detailed 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 Types:
Notation:
X A type that is a model of ConvertibleToRange
x Object of type X
I A type for iterating over objects of type X
p, q Objects 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 Guarantees:
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.

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google