假设我想实现基于有序插槽的信号系统,我也可以阻止与功能的连接。 更清楚:
Case Full Connection:mysignal(“string”,“string”),它连接到两个函数。
案例选择:mysignal(“string”,“string”)仅发送给func1_receiver
案例无:mysignal(“string”,“string”)被阻止
所以我的代码是这样的:
/*declaring mysignal with two string arguments*/
boost::signals2::signal<void (string,string)> mysignal;
/*declaring connections*/
boost::signals2::connection to_func_1 = mysignal.connect (0,&func1_receiver);
boost::signals2::connection to_func_2 = mysignal.connect (1,&func2_receiver);
现在如果我想阻止一个插槽我应该写:
boost::signals2::shared_connection_block block(to_func_2);
这一切都很好。
如果我想阻止第二个插槽我应该施放:
boost::signals2::shared_connection_block block(to_func_1);
这里我收到一个错误: “重新声明'boost :: signals2 :: shared_connection_block block'”
我认为我可以随意阻止/取消阻止连接,但我误解了一些事情。
有人可以帮助我吗?