I'm sure you know them already, but your example would be even cleaner and easier with boost signals. The entire CallbackHandler would be unnessesary:
class ClassWithCallbacks { public: void registerSelf(boost::signal<void ()> & callbackHandler) { callbackHandler.connect(boost::bind(&ClassWithCallbacks::callback1, this)); callbackHandler.connect(boost::bind(&ClassWithCallbacks::callback2, this)); } private: void callback1() { /* bla */ } void callback2() { /* more bla */ } };
usage:
boost::signal<void ()> sig; ClassWithCallbacks justAClass; justAClass.registerSelf(sig); //do Callbacks: sig();
BTW, I think there's a typo in your Listing's: Shouldn't it be
private: void callback1() { /* dosomething */ } void callback2() { /* dosomething */ }
private: void callback1Impl() { /* dosomething */ } void callback2Impl() { /* dosomething */ }
greetings, iliis
Recent comments
10 sec ago
2 hours 55 min ago
2 hours 55 min ago
13 hours 9 min ago
14 hours 37 min ago
14 hours 37 min ago
14 hours 37 min ago
21 hours 54 min ago
2 weeks 3 days ago
4 weeks 4 days ago