Arena Node1 Arena - m_header + Arena() + ~Arena() + header() + makeCurrent() Node2 SG::ArenaBase   + ArenaBase() + ~ArenaBase() + ArenaBase() + operator=() + allocator() + reset() + erase() + report() + stats() + name() - makeAllocator() Node2->Node1 Node3 std::vector< SG::ArenaBase ::AllocEntry >     Node3->Node2 -m_allocs Node4 SG::ArenaBase::AllocEntry     Node4->Node3 +elements Node5 std::unique_ptr< SG ::ArenaAllocatorBase >   + operator->() Node5->Node4 +m_alloc Node6 SG::ArenaAllocatorBase   + ~ArenaAllocatorBase() + reset() + erase() + reserve() + stats() + name() + report() + makeConstructor() + makeConstructor() + makeDestructor() + makeDestructor() + makeClear() + makeClear() - construct_fcn() - destroy_fcn() - clear_fcn() Node6->Node5 +ptr Node7 std::unique_ptr< std ::mutex >   + operator->() Node7->Node4 +m_mutex Node8 std::mutex     Node8->Node2 -m_mutex Node8->Node7 +ptr Node9 std::string     Node9->Node2 -m_name Node10 std::basic_string< Char >     Node10->Node9