SG::ArenaPoolSTLAllocator< T, typename std::enable_if<!std::is_pointer_v< T >, T >::type > Node1 SG::ArenaPoolSTLAllocator < T, typename std::enable _if<!std::is_pointer_v< T >, T >::type > - m_nblock + ArenaPoolSTLAllocator() + ArenaPoolSTLAllocator() + nblock() + name() + stats() + poolptr() + get_allocator() Node2 std::allocator< T > Node2->Node1 Node3 T Node3->Node2 +elements Node4 SG::ArenaBlockAllocatorBase # m_params # m_protected + ArenaBlockAllocatorBase() + ~ArenaBlockAllocatorBase() + ArenaBlockAllocatorBase() + operator=() + ArenaBlockAllocatorBase() + operator=() + swap() + reserve() + erase() + stats() + name() + params() + protect() + unprotect() # getBlock() Node4->Node1 -m_poolptr Node5 SG::ArenaAllocatorBase + ~ArenaAllocatorBase() + reset() + erase() + reserve() + stats() + name() + report() + makeConstructor() + makeConstructor() + makeDestructor() + makeDestructor() + makeClear() + makeClear() - construct_fcn() - destroy_fcn() - clear_fcn() Node5->Node4 Node6 SG::ArenaBlock - m_size - m_elt_size + size() + eltSize() + link() + link() + index() + index() + index() + index() + protect() + unprotect() + newBlock() + destroy() + destroyList() + appendList() + applyList() + overhead() + nactive() + protectList() + unprotectList() - ArenaBlock() - ~ArenaBlock() - ArenaBlock() - operator=() Node6->Node4 #m_freeblocks #m_blocks Node6->Node6 -m_link Node7 std::atomic< size_t > + ptr Node7->Node6 -s_nactive Node9 SG::ArenaAllocatorBase ::Stats + Stats() + clear() + operator+=() + header() Node9->Node4 #m_stats Node11 std::string Node11->Node1 -m_name Node12 std::basic_string< char > Node12->Node11