我在我的代码中有一个类Yarl
,其成员函数refresh
我想绑定到两个boost::signal
s。这些信号之一是这样定义的类EventHandler
的成员:将函数连接到boost :: signal运行,但不调用函数
class EventHandler {
public:
boost::signal<void()> sigRefresh;
};
另一种是声明如下在另一个文件中的自由浮动的信号:
namespace utility {
static boost::signal<void()> signal_refresh;
}
在
Yarl
成员函数
,我连接refresh
到的信号是这样的:
events::EventHandler eventHandler;
eventHandler.sigRefresh.connect(boost::bind(&Yarl::refresh, this));
utility::signal_refresh.connect(boost::bind(&Yarl::refresh, this));
,后来我叫两个信号是这样的:
sigRefresh();
signal_refresh();
此代码编译并运行,sigRefresh
按预期工作。但是,当我拨打signal_refresh
时没有任何反应。据我所知,refresh
从来没有实际上连接到signal_refresh
。任何人看到我做错了什么?
signals :: connect()返回signals :: connection的一个实例,它可以帮助您调试问题。对于初学者,请检查连接()。 – fingerprint211b 2010-07-08 19:00:37