C++ 是否有内置深度复制功能的作用域ptr?

C++ 是否有内置深度复制功能的作用域ptr?,c++,boost,smart-pointers,unique-ptr,scoped-ptr,C++,Boost,Smart Pointers,Unique Ptr,Scoped Ptr,据我所知,如果我有一个具有boost::scoped_ptr成员变量的类,并且如果我要复制该类的一个实例,并且希望新实例的scoped_ptr成员指向第一个实例所指向的副本,那么我必须实现一个自定义复制构造函数(和赋值运算符)并显式地对作用域_ptr指向的任何对象进行深度复制。如果智能指针类型本身有一个复制构造函数,那就太好了 < C++ > Boost/STL库中没有类似的智能指针,它已经内置了深拷贝功能,因此当智能指针被复制时,它指向的对象也被复制了吗?至少作为一种选择 (如果有这样一个指针

据我所知,如果我有一个具有boost::scoped_ptr成员变量的类,并且如果我要复制该类的一个实例,并且希望新实例的scoped_ptr成员指向第一个实例所指向的副本,那么我必须实现一个自定义复制构造函数(和赋值运算符)并显式地对作用域_ptr指向的任何对象进行深度复制。如果智能指针类型本身有一个复制构造函数,那就太好了

< C++ > Boost/STL库中没有类似的智能指针,它已经内置了深拷贝功能,因此当智能指针被复制时,它指向的对象也被复制了吗?至少作为一种选择


(如果有这样一个指针,在我的例子中,指针必须知道更多关于它应该如何创建新对象的信息,因为我指向的对象是多态类,带有virtualclone()函数。如果智能指针无法隐式地指出如何进行深度复制,则客户端代码可能提供了函数指针或指向克隆函数的东西,或者应该使用的任何工厂创建函数。我猜新对象创建方式的复杂性可能是没有指针的原因之一深度复制功能毕竟…?

据我所知,标准库中没有智能指针实现您想要的语义


然而,该库提供了——除其他外——两个应该适合您的用例的智能指针(即和)。特别是,由于虚拟成员功能的存在,我相信这是您所需要的

据我所知,标准库中没有智能指针实现您想要的语义


然而,该库提供了——除其他外——两个应该适合您的用例的智能指针(即和)。特别是,由于虚拟成员功能的存在,我相信这是您所需要的

对。这就是我不想要的。我想你还不明白这个问题。我已经有了。不,我不明白你的问题。实际上不清楚你在问什么。曾经有一个提议。我不确定它发生了什么,但还有其他实现。@πάνταῥεῖ 具有值语义的智能指针?是的。这就是我不想要的。我想你还不明白这个问题。我已经有了。不,我不明白你的问题。实际上不清楚你在问什么。曾经有一个提议。我不确定它发生了什么,但还有其他实现。@πάνταῥεῖ 具有值语义的智能指针看起来不错。我以前从未用过那个图书馆。我试试看。看起来不错。我以前从未用过那个图书馆。我会试试看。