65得票2回答
boost::scoped_ptr<T>和std::unique_ptr<T>之间的区别

boost::scoped_ptr&lt;T&gt;和std::unique_ptr&lt;T&gt;唯一的区别是std::unique_ptr&lt;T&gt;具有移动语义,而boost::scoped_ptr&lt;T&gt;只是一个获取/重置智能指针吗?

38得票5回答
shared_ptr和scoped_ptr比较

scoped_ptr不可复制,并在作用域外被删除。因此,它有点像受限制的shared_ptr。所以似乎除非确实需要限制复制操作,否则最好使用shared_ptr。因为有时你不知道是否需要创建对象的副本。那么问题是:除了上面提到的情况,我们是否可以认为shared_ptr更好(或建议)使用而不是...

23得票3回答
使用malloc和free的shared_ptr

我一直在开发一个大型应用程序,其中包含 c 和 cpp 代码。所有的文件都以 cpp 扩展名保存,但是代码编写方式是 c 风格。也就是说,它使用 define 结构而不是 class,并通过 malloc、realloc 和 calloc 来分配内存。最近,他们安装了 boost 库,所以我打...

15得票3回答
为什么boost库没有make_scoped()函数?

Boost的 make_shared() 函数承诺在尝试创建 shared_ptr 时具有异常安全性。 为什么没有相应于 make_shared() 的 make_scoped()等价物? 是否存在常见的最佳实践? 以下是来自boost::scoped_ptr 文档的代码示例,它似乎不安全...

10得票2回答
C++:boost::scoped_ptr能否在构造函数中初始化?

在类的构造函数内,可以如何初始化boost::scoped_ptr类型的类成员? (不在初始化列表中)

10得票4回答
为什么Boost中会有作用域指针?

scoped pointer 的目的是什么?据我理解,scoped pointer 管理代码块内存。如果我想在代码块中声明一个变量,我可以在堆栈上声明它,而不必担心清除工作。

8得票1回答
何时认为一个类型是完整的?

考虑以下代码片段。在 main 函数结束时,会调用 boost::scoped_ptr 的析构函数。析构函数使用 boost::checked_delete 来释放封装的 Widget 指针。 #include &lt;boost/scoped_ptr.hpp&gt; #include &l...

8得票5回答
构造函数中抛出异常时析构函数不会被调用

为什么在这段代码中析构函数没有被调用? #include &lt;boost/scoped_ptr.hpp&gt; #include &lt;iostream&gt; class MyClass { boost::scoped_ptr&lt;int&gt; ptr; public: MyC...