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