...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
An Associative Sequence allows efficient retrieval of elements based on keys. Like associative sequences in MPL, and unlike associative containers in STL, Fusion associative sequences have no implied ordering relation. Instead, type identity is used to impose an equivalence relation on keys. Keys are not checked for uniqueness.
Notation
s
An Associative Sequence
S
An Associative Sequence type
K
An arbitrary key type
o
An arbitrary object
e
A Sequence element
For any Associative Sequence the following expressions must be valid:
Expression |
Return type |
Type Requirements |
Runtime Complexity |
---|---|---|---|
|
MPL Boolean Constant. Convertible to bool. |
Constant |
|
|
Any type |
Constant |
|
|
Any type |
|
Constant |
Expression |
Compile Time Complexity |
---|---|
|
Amortized constant time |
|
Amortized constant time |
|
Amortized constant time |
Note | |
---|---|
|
Expression |
Semantics |
---|---|
|
A boolean Integral Constant |
|
The element associated with the key |
set
map
filter_view
(where adapted sequence is an Associative
Sequence and a Forward
Sequence)
iterator_range
(where adapted iterators are Associative
Iterators)
joint_view
(where adapted sequences are Associative
Sequences and Forward
Sequences)
reverse_view
(where adapted sequence is an Associative
Sequence and a Bidirectional
Sequence)