9得票4回答
shared_ptr作为类成员

在头文件中“前向声明”该类的指针作为其包含对象是很常见的做法,这样可以降低代码的物理依赖性。 例如: class B; // forward declaration class A { private: B* pB; }; 声明这样的成员为shared_pt...

16得票3回答
替换共享指针的内容?

我有一个共享指针,在系统中被多处共享。后来,我想要替换这些共享指针所指向的实际内容,但仍然保持所有共享指针有效,使它们内部指向这个新对象。 有没有一种简单的方法可以使用共享指针实现这一点? 就像我正在寻找的这样 - 伪代码:typedef boost::shared_ptr<Mode...

26得票1回答
make_shared和emplace函数

我试图找到一些简单的方法来放置一个 std::vector<std::shared_ptr<int>> 中的元素,但是找不到。由于 std::shared_ptr 接受指针作为参数,所以我仍然可以这样写:std::vector<std::shared_ptr&lt...

45得票3回答
在std::shared_ptr上使用.reset()会删除所有实例吗?

我对shared_ptr还不熟悉,正在尝试弄清楚.reset()函数的确切功能。#include <memory> #include <stdio> using namespace std; class SomeClass{}; int main() { s...

19得票3回答
如何在返回shared_ptr时实现协变返回类型?

using namespace boost; class A {}; class B : public A {}; class X { virtual shared_ptr<A> foo(); }; class Y : public X { virtual share...

13得票3回答
利用`std::weak_ptr`实现自杀对象

我正在考虑在游戏中使用“自杀对象”来模拟实体,即可以删除自身的对象。通常的C++03实现(简单地delete this)对于可能引用自杀对象的其他对象不起作用,这就是为什么我要使用std::shared_ptr和std::weak_ptr。 现在是代码转储:#include <memo...

23得票2回答
共享空指针。为什么这样可以工作?

为了解决我的应用程序中一个非常特殊的问题,我需要一个指向分配数据的共享指针,但是对于外界,底层数据类型应该保持隐藏。 我可以通过创建某种根类使所有其他类都继承该类,并在此根类上使用shared_ptr来解决这个问题,如下所示:std::shared_ptr<Root> 然而: ...

10得票2回答
shared_ptr如何存储“deleter”?

我不理解一个 shared_ptr 如何存储我给它的删除器。 一开始,使用 shared_ptr<int> ,我以为它可能会使用一个 std::function<void(int*)> ,但是我可以给它任何类型的函数(或可调用对象)作为删除器,只要第一个参数是 int...

7得票2回答
std::shared_ptr的用法

我该如何使用std::shared_ptr来处理double数组?此外,使用shared_ptr有哪些优缺点。

18得票1回答
shared_ptr交换是否线程安全?

这里是一些代码片段。std::shared_ptr<int> global(new int(1)); void swapper(int x) { std::shared_ptr<int> sp(new int(x)); global.swap(...