C++:如何执行泛型的深度克隆

Lop*_*per 4 c++

长话短说,我无法使用 STL 和 boost 库中的容器,必须创建自己的容器。

我自己的通用容器是用 VC++6 编码的,我需要知道如何在将它存储到我自己的容器之前手动为通用类型分配内存。泛型类型都是可以包含嵌套结构的结构。无论是否嵌套,所有结构都将仅包含原始类型,如 char*、int、bool 等。

例如,当你调用 std::vector 的 insert 函数时,在内部,std::vector 会在存储之前自动执行泛型类型的深度克隆。

如何在我自己的容器中复制此功能(泛型类型的深度克隆)?

请提供一些用于执行泛型深度克隆的示例代码。

Tha*_*tos 5

std::vector (和大多数 std 容器)只调用类型的复制构造函数。这可能会也可能不会“深度克隆”对象,具体取决于复制构造函数的作用。