Jaakko wrote: >I was doing something like it recently, so, sure: Awesome!
>template <class DataType, class FunctionType = boost::function1<void, >DataType> > >class work_crew { > std::list<DataType> queue_; > FunctionType engine_; >public: > work_crew(FunctionType const& tocall); > void add(DataType d) { queue_.push_front(d); }; > void dowork() > { > typedef typename std::list<DataType>::iterator iterator_t; > for (iterator_t iter = queue_.begin(); iter != queue_.end(); ++iter) > tuples::apply(this->engine_, *iter); // here > }; >}; Question: does the above work even if my work_crew is still the vanilla: work_crew< int, boost::function<void, int> > vanillaCrew(....); or would I need work_crew< tuples::tuple<int>, boost::function<void, int> > closeToVanillaCrew(....); - I ask b/c of the 'tuples::apply(...)' portion. At first glance, it's not clear that int i; tuples::apply(this->engine_, i) would not work (b/c i is not a tuple). >With a little bit more of coding and Boost.MPL, you can do even better on > > work_crew< tuples::tuple<int,int>, boost::function2<void,int,int> > > mycrew(bind(&X::f, &x, _1, _2)); > >line: > > work_crew< mpl::list<int,int> > mycrew(bind(&X::f, &x, _1, _2)); I'll look into that later, it'd be exciting. Hopefully I'll be able to see this in 1_30_0! ;-) TJ -- Trey Jackson [EMAIL PROTECTED] "Failure is not an option. It comes bundled with your Microsoft product." -- Ferenc Mantfeld _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost