C++ 增压信号2破坏安全

C++ 增压信号2破坏安全,c++,memory-management,boost-signals2,C++,Memory Management,Boost Signals2,我在对象1上有一个Boost.Signals2信号,我在对象2上连接到它。 如果对象2被破坏,信号将不会断开,这可能会在发出信号时导致不好的事情。 为了解决这个问题,我在对象2上保留了一个作用域连接。现在的问题是,如果对象1随信号自毁,然后对象2自毁,该怎么办。 它会引起问题吗?有没有更好的办法来解决这个普遍问题?(从对象1->对象2建立一个连接,当其中一个被破坏时,该连接将断开) 演示此问题的代码: auto sig = new signal<void ()>(); auto co

我在对象1上有一个Boost.Signals2信号,我在对象2上连接到它。
如果对象2被破坏,信号将不会断开,这可能会在发出信号时导致不好的事情。
为了解决这个问题,我在对象2上保留了一个
作用域连接。现在的问题是,如果对象1随信号自毁,然后对象2自毁,该怎么办。
它会引起问题吗?有没有更好的办法来解决这个普遍问题?(从对象1->对象2建立一个连接,当其中一个被破坏时,该连接将断开)

演示此问题的代码:

auto sig = new signal<void ()>();
auto conn = new scoped_connection(sig.connect(&some_function));
delete sig;
delete conn;
auto-sig=新信号();
自动连接=新的作用域连接(信号连接(&some_函数));
删除sig;
删除conn;
这安全吗?

检查

特别是:

“然而,使用Boost.Signals2可以跟踪任何正在移动的对象 由共享的ptr管理,使用slot::track。slot将 当任何跟踪对象过期时自动断开连接。在 此外,Boost.Signals2将确保跟踪对象不会过期 当与之关联的插槽处于执行中时,它会这样做 通过创建插槽跟踪对象的临时共享\u ptr副本 在执行之前。”

这能解决你的问题吗