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