
On Sat, Apr 17, 2010 at 1:30 PM, Daniel Walker <daniel.j.walker@gmail.com>wrote:
Thomas Jordan wrote:
[snip] Thanks for the suggestion, Roland, I am sure you could get something
On Sat, Apr 17, 2010 at 7:25 AM, Roland Bock <rbock@eudoxos.de> wrote: like
this to work easily enough. However, if I understand correctly your suggestion involves defining a separate functor - myClass - to take the vocType's, and which I guess wraps the inner call to for_each. I had hoped for a more generic solution which doesn't involve the creation of new functors. I was hoping I could accomplish the objective of passing an algorithm into an algorithm jgenerically, just doing everything at point of call using just Boost.bind, the std::algorithms (wrapped) and using if necessary some boost.function functors to help type deduction. Are we saying this isn't possible?
Hi Thomas,
we don't say it isn't possible :-)
Here you go:
<snip>
for_each(vov.begin(), vov.end(), bind(for_each< vocType::iterator, function<void (myClass&)> >, bind<vocType::iterator>(&vocType::begin, _1), bind<vocType::iterator>(&vocType::end, _1), protect(bind(&myClass::func, _1)) ) );
Oh yeah, that's a good idea! Instantiate std::for_each with a void boost::function! That's a portable solution as well, since bind and function are available on practically any compiler, even ancient, substandard ones.
Daniel Walker _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Could you do this with directory iteration too? Say to call a function for every file in every directory in the current directory. Ie., a two level tree walk, rather than a fully recursive one, but all in one statement? - Rob.