|
|
static constexpr bool | S_CHANGE_INVALIDATES_ITERATORS = false |
| | If false, a change (erasure, addition of an element) in the Container will invalidate NO iterator to that Container, previously obtained, except for potentially any iterator to the element being erased (if applicable).
|
| |
|
static constexpr bool | S_SORTED = false |
| | true if and only if iterating over the elements of a Container yields them in sorted order.
|
| |
|
static constexpr bool | S_CONSTANT_TIME_SEARCH = false |
| | true if and only if finding an element of Container by key takes at most constant amortized time.
|
| |
|
static constexpr bool | S_CONSTANT_TIME_INSERT = false |
| | true if and only if adding an element to a Container (anywhere) takes at most constant amortized time.
|
| |
template<typename Container>
class flow::util::Container_traits< Container >
Properties of various container types.
For example, "Container_traits<std::vector>::S_CHANGE_INVALIDATES_ITERATORS == true", while "Container_traits<std::list>::S_CHANGE_INVALIDATES_ITERATORS == false". The template defines the interface, then the specializations for various container types define the implementations.
- Template Parameters
-
| Container | The container type being described. |