什么时候使用哪种指针?
好吧,上次我以编写 C++ 为生时,std::auto_ptr 是所有可用的 std 库,而 boost::shared_ptr 则风靡一时。我从未真正研究过 boost 提供的其他智能指针…
这段代码是如何运行的?
首先是代码,它来自“Ruminations on C++”第 10 章 // TestCode.cpp : Defines the entry point for the console application. // #include "stdafx.…
在这种情况下如何有效地使用 intrusive_ptr ?
我已经阅读了很多有关 smart ptr 的内容,并决定将 intrusive_ptr 与我自己的实现一起用于引用计数。 这么说,我现在必须面对另一个问题,考虑到weak_…
intrusive_ptr 使用基类进行引用计数并包含循环地狱
我使用 boost::intrusive_ptr 作为我的引用计数智能指针。我正在使用这样的东西: http://www.codeproject.com/KB/stl/boostsmartptr.aspx#intrusive_…
从函数返回之前释放 unique_ptr
我使用 unique_ptr 将 const wchar_t 指针传递给函数。下面我想给出一个简短的例子: bool MyClass::foo(unique_ptr display_name) { bool result = f…
cpp make_shared 用于 void 指针
我想使用 std::make_shared 创建一个 void 指针。由于make_shared应该比shared_ptr(new T)更快,并且异常保存我想知道是否有一个库函数可以以make_sha…
C++11 是否有动态分配数组的包装器,如 Boost 的scoped_array?
我经常需要在 C++ 中处理动态分配的数组,因此依赖 Boost 来处理scoped_array、shared_array 等。阅读 Stroustrup 的 C++11 常见问题解答 和 C++11 参…
通过智能指针重置对象
我是 C++ 新手,我想知道重建/重新初始化对象的最佳方法是什么?我的最小代码如下所示: typedef boost::shared_ptr PObject; int main() { PObject S…
创建一个 boost::shared_ptr 到现有变量
我有一个现有变量,例如 int a = 3; 我现在如何创建一个 boost::shared_ptr 到 a?例如: boost::shared_ptr a_ptr = &a; // this doesn't work …
处理 stl 容器中的智能指针
我有一个 Foo 类,它有一个指向 Shape 派生类的智能指针向量。 我正在尝试实现 at(index) 成员函数。以下是我直观地要做的事情: Foo myfoo; std::uni…
如何 AddRef() 一个 nsCOMPtr 用作输出参数?
我的班级有一个成员: class MyNativeXPCOMObject ... { ... private: nsCOMPtr someInterface_; ... }; 我有执行此操作的方法: NS_IMETHODIMP MyNat…
如何将shared_ptr作为参数传递给可变对象?
我想通过智能指针引用将对象传递给函数。该函数可以更改引用对象的值,但不能更改引用本身。有两种明显的方法可以处理这个问题。 第一种按值传递 shar…
std::unique_ptr 作为参数的正确复制语义
是否有对接口的修改可以使第二次调用正常工作? 或者我应该保持原样? 我怀疑第一个案例中的额外结构是故意设计的,因此很明显所有权正在转移。 #incl…