Boost logo

Boost Users :

From: Faheem Mitha (yg-boost-users_at_[hidden])
Date: 2003-03-14 21:45:50


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. I forced an error with my compiler (to try to see what it thought
the type of the rhs should be) by using Type as double, but all I got
was

brent.cc:9: cannot convert `boost::_bi::bind_t<double, double
(*)(double, double, double, double, double), boost::_bi::list5<boost::arg<1>,
   boost::_bi::value<double>, boost::_bi::value<double>,
   boost::_bi::value<double>, boost::_bi::value<double> > >' to
   `double' in initialization

Eww.

I've tried looking at the documentation, but I find it pretty much
incomprehensible. Could someone

a) Tell me what "Type" should be.

b) Give me some brief indication of the reasoning by which one might
arrive at this conclusion, with appropriate references to the
documentation? Thanks.

Feel free to cc a copy of any reply to me. I'll check the mailing list
via gmane in any case.

                                            Faheem.


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