Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost:Bind//Boost:Function -- Need some help with a constructor trying to bind to a function
From: Charles Milutinovic (kssarh_at_[hidden])
Date: 2008-11-02 23:24:30


You're absolutely right about the reference. That led to a process of
chasing bugs in much more complex code than in my example that made me
sprint right past the way to properly use the boost::bind/boost::function
pair I needed in my event handler because I attributed some seg faults to
it.

Do not code while half asleep!

Thank you for your and Alan's reply.

On Sun, Nov 2, 2008 at 6:57 PM, Ryan Gallagher <ryan.gallagher_at_[hidden]>wrote:

> Charles Milutinovic <kssarh <at> gmail.com> writes:
> [snip]
> >
> > namespace Alpha{ class MethodsInHere{
> > void doesSomething(POD::POD* arg0){}
> > };}
> [snip]
> > namespace EventHandler{ class EventHandler{
> > public:
> > EventHandler(boost::function<void (POD::POD*)>& function)
> > : assign_to_me(function){}
> > boost::function<void (POD::POD*)>& assign_to_me;
> > };}
>
> <aside>
> I don't think you want assign_to_me to be a reference,
> but just hold by value. Otherwise you're holding a reference to
> a temporary below.
> </aside>
>
> > Alpha::MethodsInHere mih;
> > EventHandler eh(boost::bind(&Alpha::MethodsInHere::doesSomething,
> > ????, _1))
> >
> > --------My question is basically if this is possible.
> > I was having a ton of trouble getting this to work, and after
> > digging through some docs it seems like the '?????' in line of
> > code in #4 needs to be a reference to eh . . . which isn't
> > constructed yet. If I'm wrong, please tell me how to construct
> > this bind properly.
> [snip]
>
> Sorry, but you're wrong. You want "????" to be "mih", not "eh".
> "doesSomething"'s type is basically
> "(Alpha::MethodsInHere&, POD::POD*) -> void"
> hence you need and instance of Alpha::MethodsInHere. HTH,
>
> -Ryan
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



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