是否可以阻止从boost.signals库中的信号中删除某些插槽? 如果是这样的话,一个代码应该是什么样子的?我需要为特定的信号创建一个派生类吗?
提供自己无法返回连接的插槽连接功能。如果没有连接,客户端就无法断开它。
编辑:代码示例:
struct my_class { boost::signals::connection listen_event1(boost::function<void (my_class const&)> const& f) { return signal1.connect(f); } void listen_event2(boost::function<void my_class const&)> const& f) { signal2.connect(f); } private: typedef boost::signals::signal<void(my_class const&)> sig_t; sig_t signal1; sig_t signal2; };
无法断开信号2连接。