Range::identifier_factory Node1 Range::identifier_factory + identifier_factory() + identifier_factory() + identifier_factory() + operator=() + operator=() + operator++() + operator*() + operator==() + operator!=() Node2 ExpandedIdentifier - m_fields + ExpandedIdentifier() + ExpandedIdentifier() + ExpandedIdentifier() + operator=() + operator=() + ~ExpandedIdentifier() + ExpandedIdentifier() + ExpandedIdentifier() + add() + operator<<() and 13 more... Node2->Node1 -m_id -m_min -m_max Node3 Range + Range() + Range() + Range() + operator=() + operator=() + Range() + Range() + build() + build() + clear() and 28 more... Node3->Node1 -m_range Node4 std::vector< field > Node4->Node3 -m_fields Node5 Range::field - m_minimum - m_maximum - m_indices - m_previous - m_next - m_mode - m_continuation_mode + field() + field() + field() + field() + field() + is_valued() + has_minimum() + has_maximum() + wrap_around() + get_mode() and 29 more... - check_for_both_bounded() - create_index_table() - set_indices() Node5->Node4 +elements Node6 std::vector< size_type > + elements Node6->Node1 -m_indices Node6->Node5 -m_indexes Node7 std::vector< element _type > + elements Node7->Node5 -m_values