First, the working code:
#include
Darin Buck wrote: [...]
void callfunctor(pair < string, MessageFunctor > item, unsigned long long pk) { item.second(pk); } [...] void sendMessage(message& amessage) { MessageFunctorTableMapIteratorPair iterPair = mHandlerMap.equal_range(amessage.mtablename); std::for_each(iterPair.first, iterPair.second, boost::bind (&callfunctor, _1, amessage.mpk)); // QUESTION LINE } [...] now for the question:
on the line labeled "QUESTION LINE", you can see that I'm binding to a functor called "callfunctor". All callfunctor does is call the functor embedded in the map's pair.
Is there a way to simplify the line in question so that I don't need to create the functor just to get access to the pair.second member?
I don't see an easier way to accomplish the same effect. You can access pair.second without an additional function object but you'll still have to add one in order to invoke it.
participants (2)
-
Darin Buck
-
Peter Dimov