我在我的代碼中有一個類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