代码之家  ›  专栏  ›  技术社区  ›  Billy ONeal IS4

boost::ptr_vector deep如何复制底层对象?

c++
  •  6
  • Billy ONeal IS4  · 技术社区  · 14 年前

    ptr_vector 是可复制构造的和可复制分配的。当它不知道底层对象的具体类型时,它如何能够深度复制它们?

    1 回复  |  直到 14 年前
        1
  •  8
  •   James McNellis    14 年前

    这个 boost::ptr_vector 容器具有可选的模板参数, CloneAllocator 定义了克隆策略。默认的分配器是 heap_clone_allocator ,它只调用复制构造函数来克隆对象。

    克隆分配器用作在克隆周围添加间接层的方法。例如,它允许您提供一个自定义分配器,该分配器正确地处理不可复制类型的克隆。

    您可以在中找到更多信息 the Boost Pointer Containers Library documentation 这解释了可克隆和克隆分配器的概念。