首页 > TAG信息列表 > weak-ptr
如何制作st 11 :: weak_ptr的c 11 std :: unordered_set
我有这样的集合:set< weak_ptr< Node>,owner_less< weak_ptr< Node> > >的setName; 它工作正常.但我想将它改为无序集.但是,当我这样做时,我会得到大约六页的错误.任何想法如何做到这一点? 查看了所有错误消息页面后,我发现了可能有用的行. /usr/include/c++/4.7/bits/functionac – std :: enable_shared_from_this:是否允许在析构函数中调用shared_from_this()?
#include <memory> #include <iostream> struct A : public std::enable_shared_from_this<A> { ~A() { auto this_ptr = shared_from_this(); // std::bad_weak_ptr exception here. std::cout << "this: " <c – 绑定到weak_ptr
有没有办法将std :: bind绑定到std :: weak_ptr?我想存储一个“弱函数”回调,当被调用者被销毁时,它会自动“断开连接”. 我知道如何使用shared_ptr创建一个std :: function: std::function<void()> MyClass::GetCallback() { return std::function<void()>(std::bind(&MyClass:c – weak_ptr在shared_ptr中的作用
我理解shared_ptr如何工作,除了weak_ptr的角色.我理解它在那里检测循环引用时引用计数不为零,但除此之外,我不明白它究竟是如何做到的.它有什么作用?解决方法:另见:When is std::weak_ptr useful?为什么,How does weak_ptr work?为何. 我将举例说明我如何使用它,虽然我掀起的示例代码c – 哪个共享指针应该是环或循环中的弱指针
如果我们有一个父类,它引用了一个子类(共享指针),而且子类也有一个对父类的引用(再次使用共享指针),我们必须使这两个智能指针中的一个成为弱指针. 但是我们如何决定这两个指针中的哪一个应该是弱指针呢? 此外,当弱指针指向0(当共享计数为0时),当我们可能仍需要访问它时,是否删除了C 11:如果使用make_shared构造对象,如何删除对象
我遗漏了一些关于共享/弱指针的东西: 当使用make_shared构造shared_ptr时,只使用一个内存分配(为控制块和对象本身分配内存).当最后一个shared_ptr被销毁但是还有weak_ptr-s时会发生什么?此时必须取消分配托管对象.但是如果make_shared分配的内存被释放,那将使弱指针无效,因为相同的c – 使用weak_ptr作为参数的函数重载分辨率
我有: class A : public std::enable_shared_from_this<A> {...}; class B : public A {...}; void doCoolStuff(std::weak_ptr<A> obj) {...} void doCoolStuff(std::weak_ptr<B> obj) { ... doCoolStuff(std::static_pointer_cast<A>(obj.lock