Utils::ProxyIteratorBase< Container, T_Derived, ElementProxy > Node1 Utils::ProxyIteratorBase < Container, T_Derived, ElementProxy >   + operator++() + operator+=() + operator*() + operator==() + createElementProxy() + createElementProxy() + createElementProxy() Node3 Utils::ProxyIterator < ContainerNonConst, T_Derived, ElementProxy > + isConst # m_container # m_index + ProxyIterator() + operator++() + operator+=() + operator++() + operator!=() + operator*() + operator==() + index() + container() + createElementProxy() + createElementProxy() + createElementProxy() # cptr() Node1->Node3 Node4 Utils::ProxyIterator < const ContainerNonConst, T_Derived, ElementProxy > + isConst # m_container # m_index + ProxyIterator() + operator++() + operator+=() + operator++() + operator!=() + operator*() + operator==() + index() + container() + createElementProxy() + createElementProxy() + createElementProxy() # cptr() Node1->Node4 Node5 Utils::ProxyIterator < Container, T_Derived, ElementProxy >   + ProxyIterator() + operator++() + operator+=() + operator++() + operator!=() Node1->Node5 Node2 Utils::ElementProxyBase < Container, ElementProxy ::index_t > + isConst # m_container # m_index + ElementProxyBase() + index() + container() # cptr() Node2->Node1