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