我有一个工作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
由于
答案 0 :(得分:0)
connect_extended
的唯一优点是它允许插槽接收connection
对象,这在多线程程序中可能是至关重要的,其中插槽调用可能在{{1}之前的另一个线程中发生返回。您不需要connect_extended
传递任何其他信息,因为您可以直接绑定它。无论如何,以下是connect_extended
:
connect_extended