All, Using boost 1_29_0, Linux gcc3.2.1.
Just started using boost::bind, like it a lot. I'm playing around with a little work crew, which just queues up data, then calls the function on them later. bind does a great job of packaging up functions for later use. is there an analogue for the arguments to those functions? i.e. a C++ version of (apply 'fn '(arg1 arg2 arg3)) here's what i can do today ,---------------- | struct X { | bool f(int a, int b); | }; | | X x; | | int i = 5; | int j = 10; | | // Can do this today, yay! | bind(&X::f, &x, _1, j)(i); | | // create crew | work_crew<int> mycrew(bind(&X::f, &x, _1, j)); | // add work | mycrew.add(9); | mycrew.add(42); | mycrew.add(29232); | | // do work | mycrew.dowork(); // calls x.f(9, 10), x.f(42,10), x.f(29232,10)b `---------------- I'd like to be able to do something like: ,---------------- | work_crew<???> mycrew(bind(&X::f, &x, _1, _2)); | | mycrew.add( ?? 9 10 ?? ); | mycrew.add( ?? 42 10 ?? ); | mycrew.add( ?? 29232 10 ?? ); | | // do work | mycrew.dowork(); // STILL calls x.f(9, 10), x.f(42,10), x.f(29232,10)b `---------------- Where obviously I have to do something special to package up the arguments to the function object that's been created. Is it possible without a huge amount of coding? Thanks, TJ ps. My crew class is something like this: template <class DataType, class FunctionType = boost::function1<void, DataType> > class work_crew { std::list<DataType> queue_; typename FunctionType engine_; public: work_crew(FunctionType &tocall); void add(DataType d) { queue_.push_front(d); }; void dowork() { for(iter = queue_.begin(); iter != queue_.end(); ++iter) engine_(*iter);}; }; -- Trey Jackson [EMAIL PROTECTED] "The mirror doesn't lie. I *am* getting sexier." -- Dogbert _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost