问题标签 [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.
c++ - std::tr1 中的 shared_ptr
我正在使用 gcc 编译器的平台上工作,但是 boost 无法在其上编译。
我想知道在 gcc 的 std:tr1 中包含 shared_ptr 的正确方法是什么?我查看的文件说不直接包含它,据我所知没有其他文件包含它:|
c++ - 从shared_ptr 得到一个正常的ptr?
我有类似shared_ptr<Type> t(makeSomething(), mem_fun(&Type::deleteMe))
现在需要调用需要指向Type
. 我如何从中得到它shared_ptr
?
c++ - 带有 boost::shared_ptr 的空指针?
什么等价于以下内容:
处理的时候boost::shared_ptr
?是下面的代码吗?
注意:我可能会推回很多这样的对象。nullPtr
我应该在某处声明一个全局静态对象吗?这样,只需构建其中一个:
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
为变量分配一个新的空?那应该丢弃旧值并将其删除。
c++ - 带有 boost::shared_ptr 的 static_cast?
static_cast
a with的等价物是boost::shared_ptr
什么?
换句话说,我该如何重写以下内容
什么时候用shared_ptr
?
c++ - 是提升 shared_ptr线程安全吗?
我有一个关于boost::shared_ptr<T>
.
有很多线程。
第一季度
如果Thread_A不关心nowResource
是最新的,这部分代码会有问题吗?
我的意思是当Thread_B不SetResource()
完全时,Thread_A得到一个错误的智能点GetResource()
?
第二季度
线程安全是什么意思?
如果我不关心资源是否是最新shared_ptr<CResource> nowResource
的,释放时程序会崩溃nowResource
还是问题会破坏shared_ptr<CResource>
?
shared-ptr - ATL CAutoPtr 和 STL std::auto_ptr 之间的区别?
我正在 MFC 中编写一些代码,我想使用自动指针。我遇到了两个不同的类,它们看起来做同样的事情:人们对这两种不同的实现有什么想法CAutoPtr
?std::auto_ptr
此外,我知道有std::tr1::shared_ptr
. shared_ptr
ATL/MFC 中有类似的吗?
c++ - 使用 boost::shared_ptr 时有哪些潜在危险?
有哪些方法可以在使用时射中自己的脚boost::shared_ptr
?换句话说,我在使用时必须避免哪些陷阱boost::shared_ptr
?
c++ - 引用计数智能指针的引用计数如何工作?
换句话说,实现如何跟踪计数?
是否维护了一个类似地图的对象,所有shared_ptr
实例都可以访问该对象,其键是指针的地址,值是引用的数量?如果我必须实现 a shared_ptr
,这是我想到的第一个想法。
在这些引用计数智能指针的情况下是否存在内存泄漏的可能性?如果是这样,我该如何避免它们?
c++ - 使用 shared_ptr 时如何检测循环
shared_ptr 是 Boost 库中的引用计数智能指针。
引用计数的问题是它不能处理循环。我想知道如何在 C++ 中解决这个问题。
请不要提出诸如“不要循环”或“使用弱点”之类的建议。
编辑
我不喜欢只使用 weak_ptr 的建议,因为显然如果你知道你会创建一个循环,那么你就不会有问题。如果您在运行时生成 shared_ptrs,您也无法知道在编译时会有一个循环。
因此,请自行删除其中使用 weak_ptr 的答案,因为我特别要求不要有那种答案......