c++ - 习惯用std:: auto_ptr还是只使用shared_ptr?

c++ - 习惯用std:: auto_ptr还是只使用shared_ptr?

现在shared_ptr在tr1中,你认为使用std::auto_ptr怎样? 它们都有不同的用例,但是auto_ptr所有用例也可以用shared_ptr来解决。 你会放弃auto_ptr或继续使用它的情况下,你想明确表示只有一个类拥有所有权在任何给定的点? 我的看法是,使用auto_ptr可以增加代码的清晰度,正好通过添加细微差别和代码设计的指示,但另一方面,在培养新的程序员时又增加了一个微…


c++ - 为什么shared_ptr有一个显式的构造函数

我想知道为什么shared_ptr没有隐式的构造函数。 事实并非如此: 为此获取boost:: shared_ptr(我找出原因,但认为这将是一个有趣的问题,无论如何发布。)#include<boost/shared_ptr.hpp>#include<iostream> using namespace boost; using namespace std; void fun(s…


C++-将引用传递给std:: shared_ptr或boost:: shared_ptr

如果我有一个需要使用shared_ptr的函数,将它的引用传递给它会不会更高效(所以为了避免复制shared_ptr对象)? 什么是可能的不良副作用? 我设想了两种可能的情况: 1)函数内部的副本由参数组成,如in ClassA::take_copy_of_sp(boost::shared_ptr<foo> &sp){... m_sp_member=sp;…


RAII和C++中的智能指针

在C++实践中,什么是RAII,什么是智能指针,它们是如何在程序中实现的,以及使用RAII和智能指针有什么好处?…


c++ - make shared_ptr不使用delete

在我的代码中,我想boost:: shared_ptr不要调用delete但是调用ptr-> deleteMe()代替。 我还有一些C风格的函数返回一个ptr。 我可以调用lib_freeXYZ(ptr); 而不是试图删除?…


c++ - 从shared_ptr获得正常的ptr?

我有类似shared_ptr<Type> t(makeSomething(), mem_fun(&Type::deleteMe))我现在需要调用需要指向Type的指针的C样式函数。 我如何从shared_ptr获取它?…


c++ - 使用boost:: shared_ptr的NULL指针?

什么相当于以下内容: std::vector<Foo*> vec; vec.push_back(NULL); 在处理boost::shared_ptr ? 它是以下代码吗? std::vector< boost::shared_ptr<Foo>>vec; vec.push_back(boost::shared_ptr<Foo>()); 注意:我可能会推回很多这样的对象。 我应该在某处声…


c++ - boost shared_ptr<XXX>线程安全吗?

我有一个关于boost::shared_ptr<T> 。 有很多线程。 using namespace boost; class CResource{// xxxxxx}class CResourceBase{public: void SetResource(shared_ptr<CResource> res){m_Res=res;}…


c++ - 如何从boost:: shared_ptr释放指针?

boost:: shared_ptr可以释放存储的指针而不删除它吗? 我可以看到文档中没有释放函数,也在FAQ中解释了为什么它不提供发布功能,类似于发布不能在不唯一的指针上完成。 我的指针是独一无二的。 我该如何发布指针? 或者哪个提升智能指针类使用,这将允许我释放指针? 我希望你不要说使用auto_ptr:)…


c++ - 从shared_ptr中分离指针?

可能重复: 如何从boost:: shared_ptr释放指针? 我的接口函数返回一个指向对象的指针。 用户应该拥有该对象的所有权。 我不想返回Boost.shared_ptr,因为我不想强制客户端使用boost。 但是,在内部,我想将指针存储在shared_ptr中以防止在异常等情况下发生内存泄漏。似乎无法从共享指针中分离指针。 这里有什么想法?…





shared_ptr reset shared_ptr头文件 std get make_shared shared_ptr用法 shared_ptr赋值 boost deleter