В моем коде есть класс Yarl
с функцией-членом refresh
, которую я хочу связать с двумя boost::signal
с.Один из этих сигналов является членом класса EventHandler
, определенного следующим образом:
class EventHandler {
public:
boost::signal<void()> sigRefresh;
};
Другой является свободным плавающим сигналом в другом файле, объявленном так:
namespace utility {
static boost::signal<void()> signal_refresh;
}
inфункция-член 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
.Кто-нибудь видит, что я делаю не так?