>From: "David Abrahams" <[EMAIL PROTECTED]> > "Andrei Alexandrescu" <[EMAIL PROTECTED]> writes: > > > Or (barring my lack of mastering some syntactic details): > > > > inline void do_my_function(string&, void_) {} > > > > template <class Lst> > > inline void do_my_function(string& s, Lst lst) > > { > > my_function<front<Lst>::type>(s); > > do_my_function(s, pop_front<Lst>::type()); > > } > > ... > > do_my_function(s, my_list()); > > > > No struct, no for_each, no operator(). Et que le meilleur gagne :o). > > Yeah, I haven't always been very comfortable with the > value-per-character of mpl::for_each -- it seems to have similar > properties to std::for_each in that way.
Perhaps it might be possible to do some compile-time/run-time lambda (similar to Boost.Lambda for runtime, and MPL's lambda), so you could do something like: mpl::for_each<my_list>(my_function<_>(s)); It would then transform the function call "my_function<_>(s)" into an instantiated function object of the kind suitable for mpl::for_each. That would collapse the 7 or 12-line solution to one line. :) Regards, Terje _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost