|
Boost Users : |
From: Sigg_at_[hidden]
Date: 2004-07-13 08:39:59
Hi,
I would like to bind a function which takes a boost::function<void> as
parameter, let's say
void caller(boost::function<void (void)>& f) { f(); }
void foo() {}
boost::function<void (void)> foo_fun = &foo; boost::bind(caller, foo_fun)();
But what if the function has a parameter, for example
void bar(int i) {}
How can I create the folling a function object?
boost::function<void (int)>
The function object should take an int, bind it to bar and then call caller
with the resulting nullary function.
boost::function<void (int)> bar_fun = &bar;
// doesn't work because caller and bar are being composed.
boost:bind(caller, boost::bind(bar_fun, _1))
// doesn't work because caller doesn't accept a unary function.
boost:bind(caller, boost::protect(boost::bind(bar_fun, _1)))
Does anyone have a clean solution for that?
boost::protect doesn't provide the option to evaluate the arguments (_1) but
_not_ perform a composition.
Regards,
Christian
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net