问题标签 [shared-ptr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8820 浏览

c++ - std::tr1 中的 shared_ptr

我正在使用 gcc 编译器的平台上工作,但是 boost 无法在其上编译。

我想知道在 gcc 的 std:tr1 中包含 shared_ptr 的正确方法是什么?我查看的文件说不直接包含它,据我所知没有其他文件包含它:|

0 投票
3 回答
85670 浏览

c++ - 从shared_ptr 得到一个正常的ptr?

我有类似shared_ptr<Type> t(makeSomething(), mem_fun(&Type::deleteMe)) 现在需要调用需要指向Type. 我如何从中得到它shared_ptr

0 投票
6 回答
62843 浏览

c++ - 带有 boost::shared_ptr 的空指针?

什么等价于以下内容:

处理的时候boost::shared_ptr?是下面的代码吗?

注意:我可能会推回很多这样的对象。nullPtr我应该在某处声明一个全局静态对象吗?这样,只需构建其中一个:

0 投票
4 回答
54541 浏览

c++ - 如何故意删除 boost::shared_ptr?

我有很多boost::shared_ptr<MyClass>对象,在某些时候我故意想让其中一些对象delete释放一些内存。(我知道那时我再也不需要指向的MyClass对象了。)我该怎么做?

我猜你不能只delete()用我得到的原始指针调用get().

我在 中看到了一个函数get_deleter(shared_ptr<T> const & p)boost::shared_ptr但我不知道如何使用它,而且它旁边还写着实验性的。(我想我有 Boost 1.38。)

也许只是boost::shared_ptr为变量分配一个新的空?那应该丢弃旧值并将其删除。

0 投票
4 回答
42932 浏览

c++ - 带有 boost::shared_ptr 的 static_cast?

static_casta with的等价物是boost::shared_ptr什么?

换句话说,我该如何重写以下内容

什么时候用shared_ptr

0 投票
5 回答
23772 浏览

c++ - 是提升 shared_ptr线程安全吗?

我有一个关于boost::shared_ptr<T>.

有很多线程。

第一季度

如果Thread_A不关心nowResource是最新的,这部分代码会有问题吗?

我的意思是当Thread_BSetResource()完全时,Thread_A得到一个错误的智能点GetResource()

第二季度

线程安全是什么意思?

如果我不关心资源是否是最新shared_ptr<CResource> nowResource的,释放时程序会崩溃nowResource还是问题会破坏shared_ptr<CResource>

0 投票
3 回答
1887 浏览

shared-ptr - ATL CAutoPtr 和 STL std::auto_ptr 之间的区别?

我正在 MFC 中编写一些代码,我想使用自动指针。我遇到了两个不同的类,它们看起来做同样的事情:人们对这两种不同的实现有什么想法CAutoPtrstd::auto_ptr

此外,我知道有std::tr1::shared_ptr. shared_ptrATL/MFC 中有类似的吗?

0 投票
13 回答
13857 浏览

c++ - 使用 boost::shared_ptr 时有哪些潜在危险?

有哪些方法可以在使用时射中自己的脚boost::shared_ptr?换句话说,我在使用时必须避免哪些陷阱boost::shared_ptr

0 投票
7 回答
27107 浏览

c++ - 引用计数智能指针的引用计数如何工作?

换句话说,实现如何跟踪计数?

是否维护了一个类似地图的对象,所有shared_ptr实例都可以访问该对象,其键是指针的地址,值是引用的数量?如果我必须实现 a shared_ptr,这是我想到的第一个想法。

在这些引用计数智能指针的情况下是否存在内存泄漏的可能性?如果是这样,我该如何避免它们?

0 投票
12 回答
8086 浏览

c++ - 使用 shared_ptr 时如何检测循环

shared_ptr 是 Boost 库中的引用计数智能指针。

引用计数的问题是它不能处理循环。我想知道如何在 C++ 中解决这个问题。

请不要提出诸如“不要循环”或“使用弱点”之类的建议。

编辑

我不喜欢只使用 weak_ptr 的建议,因为显然如果你知道你会创建一个循环,那么你就不会有问题。如果您在运行时生成 shared_ptrs,您也无法知道在编译时会有一个循环。

因此,请自行删除其中使用 weak_ptr 的答案,因为我特别要求不要有那种答案......