我在对象 1 上有一个 Boost.Signals2 信号,我在对象 2 上连接到它。
如果对象 2 被破坏,信号将不会断开,这会在发出信号时导致坏事。
为了解决这个问题,我scoped_connection
在对象 2 上保留了一个。现在的问题是,如果对象 1 用信号破坏然后对象 2 破坏怎么办。
会不会造成问题?有没有更好的方法来解决一般问题?(具有来自对象 1 -> 对象 2 的连接,当它们中的一个被破坏时将断开连接)。
演示该问题的代码:
auto sig = new signal<void ()>();
auto conn = new scoped_connection(sig.connect(&some_function));
delete sig;
delete conn;
这安全吗?