Есть ли способ получить доступ к shared_ptr для этого:Доступ к shared_ptr для этого указателя
e.g.
#include <boost/enable_shared_from_this.hpp>
#include <boost/shared_ptr.hpp>
#include <cassert>
class Y: public boost::enable_shared_from_this<Y>
{
public:
void foo();
void bar();
boost::shared_ptr<Y> f()
{
return shared_from_this();
}
};
void Y::foo()
{
boost::shared_ptr<Y> p(this);
boost::shared_ptr<Y> q = p->f();
q->bar();
p.reset();
q.reset();
}
void Y::bar()
{
std::cout << __func__ << std::endl;
}
int main()
{
Y y;
y.foo();
}
Когда я запускаю программу, я получаю segafult после выполнения бара. Я понимаю причину seg-fault.
Моя последняя цель - иметь слабый указатель, а затем перезвонить.
Благодаря