I am using the boost library and my question is about boost::signals.  

I have a signal that might call many different slots but only one slot will match the call so I want this particular slot to return true and that the calling will stop.  

Is it possible?  

Is it efficient?  

Can you guys suggest me a better way to do it if it's not efficient?