
Monday, October 2, 2006, 10:05:23 PM, you wrote: burlbo> Johan Torp wrote:
I often tend to have interfaces which take a boost::function
that is to be called when an event occurs. Quite often I need make two separate function calls as response to one event. In these cases I usually solve the problem using the following technique: void foo(); void bar();
void call_two(const boost::function
& one, const boost::function & two) { one(); two(); } boost::function
on_event = boost::bind(&call_two, boost::bind(&foo), boost::bind(&bar));
burlbo> Why not just use Boost Signals to have a single signal just call your burlbo> two different slots of foo and bar ? It seems you are unnecessarily burlbo> trying to re-invent a wheel which has already been re-invented by the burlbo> signals library. Good point. Actually I have developed some classes which closely resemble the signals library which I had already used extensively when I found signals. Maybe I will switch to boost signals when some shortcoming of my "library" becomes appearent, but for now it works nicely and I prefer to not mix APIs. In this particular case, boost::lambda solved the problem. I have a strong functional programming background so doing things like this (higher order programming) is much more natural to me than having to think about concepts such as signals and slots. -- Best regards, Johan Torp mailto:johan.torp@touchtable.se