SG::ArenaNonConstHeapSTLAllocator< T > Node1 SG::ArenaNonConstHeapSTLAllocator< T > - m_poolptr_nc + ArenaNonConstHeapSTLAllocator() + reset() + erase() + reserve() + protect() + unprotect() Node2 SG::ArenaHeapSTLAllocator < T, T > - m_nblock - m_name - m_poolptr - m_pool + ArenaHeapSTLAllocator() + ArenaHeapSTLAllocator() + nblock() + name() + stats() + poolptr() + operator=() + swap() + select_on_container _copy_construction() + operator==() and 12 more... + get_allocator() Node2->Node1 Node3 std::allocator< T > + elements   Node3->Node2