SG::ArenaHandle< T, ALLOC > Node1 SG::ArenaHandle< T, ALLOC > + ArenaHandle() + ArenaHandle() + ArenaHandle() + ArenaHandle() + ArenaHandle() + allocate() + makeAllocator() Node2 SG::ArenaHandleBaseT < T, ALLOC > + ArenaHandleBaseT() + ArenaHandleBaseT() + ArenaHandleBaseT() + begin() + begin() + end() + end() + free() + resetTo() Node2->Node1 Node3 SG::ArenaHandleBaseAlloc T< ALLOC > + ArenaHandleBaseAllocT() + ArenaHandleBaseAllocT() + ArenaHandleBaseAllocT() + params() # allocator() # allocator() # makeIndex() Node3->Node2 Node4 SG::ArenaHandleBase + ArenaHandleBase() + ArenaHandleBase() + ArenaHandleBase() + reset() + erase() + reserve() + stats() # baseAllocator() # baseAllocator() Node4->Node3 Node5 SG::LockedAllocator + LockedAllocator() + operator*() + operator->() + get() + get() Node5->Node4 -m_allocator Node6 std::unique_lock< std ::mutex > Node6->Node5 -m_lock Node8 SG::ArenaAllocatorBase + ~ArenaAllocatorBase() + reset() + erase() + reserve() + stats() + name() + report() + makeConstructor() + makeConstructor() + makeDestructor() + makeDestructor() + makeClear() + makeClear() - construct_fcn() - destroy_fcn() - clear_fcn() Node8->Node5 -m_alloc