6
ptr_vector
是复制可构建和可复制分配。当它不知道具体类型时,如何深层复制底层对象?boost :: ptr_vector如何深层复制底层对象?
ptr_vector
是复制可构建和可复制分配。当它不知道具体类型时,如何深层复制底层对象?boost :: ptr_vector如何深层复制底层对象?
boost::ptr_vector
容器有一个可选的模板参数CloneAllocator
,它定义了克隆策略。默认分配器是heap_clone_allocator
,它只是调用复制构造函数来克隆对象。
克隆分配器用作在克隆周围添加一个间接层的方式。例如,它允许您提供正确处理不可复制类型的克隆的自定义分配器。
你可以在the Boost Pointer Containers Library documentation找到更多的信息,它解释了Clonable和Clone Allocator的概念。
啊 - 所以我需要支持可克隆概念,即使我的对象是可复制构造的?该文件似乎只提到克隆时,该对象不是。 – 2010-08-07 19:35:33
@比利:那是我对它的理解。我没有广泛使用'ptr_vector',但这是我用来处理克隆的其他指针容器的方式。 – 2010-08-07 20:02:05
@比利:你也可以使用'view_clone_allocator'而不是'heap_clone_allocator'来解决可克隆的需求。那么'new_clone()'不需要重载。显然你不能深度复制容器。 – 2015-03-02 12:35:10