Есть ли способ избежать использования boost :: bind для присоединения функции-члена к слоту boost :: signal?
Единственный способ заставить его работать - это использовать связывание вот так :
mysignal.connect(boost::bind(&myClass::listenerMember, this, _1, _2));
но я действительно хочу, чтобы это выглядело примерно так:
mysignal.connect(myClass::listenerMember);
Вот пример кода, чтобы показать его немного лучше:
#include <iostream>
#include <cstdlib>
#include "boost/signals2.hpp"
class window
{
public:
boost::signals2::signal<void(int,int)> sigLButtonDown;
void simulateCallback(){ sigLButtonDown(1,3);}
};
class windowListener
{
public:
windowListener(window * pwindow) { pwindow->sigLButtonDown.connect(boost::bind(&windowListener::listenerMember, this, _1, _2));}
void listenerMember(int x, int y) { std::cout << "ping!" << std::endl;}
};
int main()
{
window w;
windowListener l(&w);
std::cout << "Here goes!" << std::endl;
w.simulateCallback();
}