如何使用Boost.Signals2 connect_extended?

时间:2013-05-18 16:40:56

标签: c++ boost boost-signals2

我有一个工作Boost.Signals2 signal&我的C ++项目中的slot组合&这样设置;

//DECLARE SIGNAL
signals2::signal<void (const EN_DATA_STREAM, long, double, double, double, double,     double)> signal;

//CONNECT DATAUPDATE() OF CANDIDATE INSTANCE
signal.connect(bind(&Candidate::DataUpdate, candidateInstance, _1, _2, _3, _4, _5, _6, _7));

//FIRE SIGNAL
signal(iDataNumber, BarNumber(), DateTime(), Open(), High(), Low(), Close());

我一直在尝试进一步使用boost.signals2 connect_extended功能,因为我想将调用signal的详细信息传递给slot所以slot稍后可能会与signal断开连接。这个的语法正在逃避我。有人可以演示如何转换上述代码,以便它使用connect_extended将连接信息传递给slot

P.S。我一直在看这个提升网站上提供的示例,但我仍然不知道如何根据参数使用bind的要求定制它。

Boost.Signals2 connect_extended example

由于

1 个答案:

答案 0 :(得分:0)

connect_extended的唯一优点是它允许插槽接收connection对象,这在多线程程序中可能是至关重要的,其中插槽调用可能在{{1}之前的另一个线程中发生返回。您不需要connect_extended传递任何其他信息,因为您可以直接绑定它。无论如何,以下是connect_extended

的方法
connect_extended