On Sat, 15 Mar 2003 12:22:34 -0500, Douglas Gregor
On Friday 14 March 2003 09:45 pm, Faheem Mitha wrote:
Dear People,
I have defined a function as follows.
double accept_prob_fn(const double x, const double be, const double theta, const double a, const double b);
Now, I define the temporary function object
bind(accept_prob_fn, _1, be, theta, a, b);
So this function object would return the first argument, x. However, I want to save this function object to a function object called foo, say.
So I want to do something like
Type foo = bind(accept_prob_fn, _1, be, theta, a, b);
However, the problem I have is that I'm not sure what type foo should be. [snip]
The type is "unspecified", may vary from compiler to compiler, and is hideous on every compiler. For these reasons, it's intentional that you can't name the type directly (see http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1438.htm, section IIIB).
However, you can include
and make the Type: boost::function (or, if your compiler isn't up to par, boost::function1
). See the Boost.Function documentation for more information about the Function library.
Thanks, this is very helpful. boost::function