Boost :: signals2阻塞多个时隙

时间:2017-07-21 10:29:41

标签: c++ boost-signals2

假设我想实现基于有序插槽的信号系统,我也可以阻止与功能的连接。 更清楚:

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'”

我认为我可以随意阻止/取消阻止连接,但我误解了一些事情。

有人可以帮助我吗?

0 个答案:

没有答案