|  | 
| static constexpr bool | S_CHANGE_INVALIDATES_ITERATORS = false | 
|  | If false, a change (erasure, addition of an element) in the Containerwill invalidate NO iterator to thatContainer, previously obtained, except for potentially any iterator to the element being erased (if applicable).
 | 
|  | 
| static constexpr bool | S_SORTED = false | 
|  | trueif and only if iterating over the elements of aContaineryields them in sorted order.
 | 
|  | 
| static constexpr bool | S_CONSTANT_TIME_SEARCH = false | 
|  | trueif and only if finding an element ofContainerby key takes at most constant amortized time.
 | 
|  | 
| static constexpr bool | S_CONSTANT_TIME_INSERT = false | 
|  | trueif and only if adding an element to aContainer(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. |