Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/libs/iterator/doc/InteroperableIterator.rst @ 28

Last change on this file since 28 was 12, checked in by landauf, 17 years ago

added boost

File size: 4.5 KB

Interoperable Iterator Concept

A class or built-in type X that models Single Pass Iterator is interoperable with a class or built-in type Y that also models Single Pass Iterator if the following expressions are valid and respect the stated semantics. In the tables below, x is an object of type X, y is an object of type Y, Distance is iterator_traits<Y>::difference_type, and n represents a constant object of type Distance.

Expression Return Type Assertion/Precondition/Postcondition
y = x Y post: y == x
Y(x) Y post: Y(x) == x
x == y convertible to bool == is an equivalence relation over its domain.
y == x convertible to bool == is an equivalence relation over its domain.
x != y convertible to bool bool(a==b) != bool(a!=b) over its domain.
y != x convertible to bool bool(a==b) != bool(a!=b) over its domain.

If X and Y both model Random Access Traversal Iterator then the following additional requirements must be met.

Expression Return Type Operational Semantics Assertion/ Precondition
x < y convertible to bool y - x > 0 < is a total ordering relation
y < x convertible to bool x - y > 0 < is a total ordering relation
x > y convertible to bool y < x > is a total ordering relation
y > x convertible to bool x < y > is a total ordering relation
x >= y convertible to bool !(x < y)  
y >= x convertible to bool !(y < x)  
x <= y convertible to bool !(x > y)  
y <= x convertible to bool !(y > x)  
y - x Distance distance(Y(x),y) pre: there exists a value n of Distance such that x + n == y. y == x + (y - x).
x - y Distance distance(y,Y(x)) pre: there exists a value n of Distance such that y + n == x. x == y + (x - y).
Note: See TracBrowser for help on using the repository browser.