• Advertisement
Sign in to follow this  

boost::function and std::for_each

This topic is 3445 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Advertisement

struct call_it { template<typename T> void operator() (T &f) const { f(); } };
for_each(b, e, call_it());


You could also do std::mem_fun with boost::function<void ()>::operator(), maybe.

The algorithms that take functors are designed to apply functors to the elements.

The fact that a container contains a bunch of functors leads one to the false expectation that there should be some nice way to call each functor-element, but this isn't how the STL algorithms are designed.

Share this post


Link to post
Share on other sites
typedef std::vector< boost::function<void ()> > ContainerType;

ContainerType container;

std::for_each(container.begin(), container.end(), boost::bind(&ContainerType::value_type::operator(), _1));




Edited a few times because I'm an idiot.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement