...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A Forward Sequence is a Sequence whose elements are arranged in a definite order. The ordering is guaranteed not to change from iteration to iteration. The requirement of a definite ordering allows the definition of element-by-element equality (if the container's element type is Equality Comparable) and of lexicographical ordering (if the container's element type is LessThan Comparable).
Notation
A Forward Sequence
A Forward Sequence type
An arbitrary object
A Sequence element
For any Forward Sequence the following expressions must be valid:
Expression |
Return type |
Type Requirements |
Runtime Complexity |
---|---|---|---|
begin(s) |
|
Constant |
|
end(s) |
|
Constant |
|
size(s) |
MPL Integral Constant. Convertible to int. |
|
Constant |
empty(s) |
MPL Boolean Constant. Convertible to bool. |
|
Constant |
front(s) |
Any type |
|
Constant |
front(s) = o |
Any type |
s is mutable and e = o, where e is the first element in the sequence, is a valid expression. |
Constant |
Expression |
Compile Time Complexity |
---|---|
result_of::begin<S>::type |
Amortized constant time |
result_of::end<S>::type |
Amortized constant time |
result_of::size<S>::type |
Unspecified |
result_of::empty<S>::type |
Constant time |
result_of::front<S>::type |
Amortized constant time |
Expression |
Semantics |
---|---|
begin(s) |
An iterator to the first element of the sequence; see begin. |
end(s) |
A past-the-end iterator to the sequence; see end. |
size(s) |
The size of the sequence; see size. |
empty(s) |
A boolean Integral Constant c such that c::value == true if and only if the sequence is empty; see empty. |
front(s) |
The first element in the sequence; see front. |
For any Forward Sequence s the following invariants always hold: