CxxUtils::ArrayIterator::pointer Node1 CxxUtils::ArrayIterator ::pointer + pointer() + operator*() + operator->() Node2 CxxUtils::Array< N-1 > # WritableArray< N+1 > # m_offs + Array() + Array() + valid() + shape() + size() + operator[]() + ptr() + begin() + end() + write_array() # Array() Node2->Node1 -m_a Node3 CaloRec::Arrayrep + Arrayrep() + Arrayrep() + Arrayrep() + Arrayrep() + init_sizes() + write_array() + write_subarray() Node3->Node2 #m_rep Node4 std::vector< Arrayelt > Node4->Node3 +m_data Node5 Arrayelt Node5->Node4 +elements Node6 std::vector< unsigned int > + elements Node6->Node3 +m_shape +m_sizes