コード内に、 2つのにバインドしたいYarl
メンバー関数を持つクラスがあります。これらのシグナルの1つは、次のように定義されたクラスのメンバーです。refresh
boost::signal
EventHandler
class EventHandler {
public:
boost::signal<void()> sigRefresh;
};
もう1つは、次のように宣言された別のファイルのフリーフローティング信号です。
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
。誰かが私が間違っているのを見ますか?