c++ - 如何将 boost::shared_ptr<T> 后面的完整对象深度复制到指向新位置的 shared_ptr?

标签 c++ boost shared-ptr

如何在 boost::shared_ptr<T> 后面复制完整对象: 是否有 memcopy 选项(只创建内存克隆),或者我们应该创建复制构造函数?

最佳答案

您需要一个复制构造函数或一个将执行深复制的operator=

boost::shared_ptr 无法知道您的对象的结构来为您执行此操作。 “内存克隆”操作也不能。

当然,这仅适用于需要明确定义的复制构造函数/operator= 的对象,而“普通”的对象会进行浅拷贝。

关于c++ - 如何将 boost::shared_ptr<T> 后面的完整对象深度复制到指向新位置的 shared_ptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546137/

相关文章:

C++,跨不同 namespace 的名称冲突

c++ - std::variant 和 boost::variant 有什么区别?

c++ - boost::bind & std::set::count 编译错误

c++ - 使用 boost::any_range 有什么好处?

c++11 - 如何解决在此范围内未声明的 “' shared_ptr错误?

c++ - 我可以从 boost 的 weak_ptr 获得原始指针吗?

c++ - 删除所有字符串后如何恢复 QStringList?

java - JNI 获取异常信息 - 试图读取或写入 protected 内存

c++ - 公共(public)/ protected /私有(private)继承的问题

c++ - shared_ptr 中 multidim 数组的类型是什么?