Boost logo

Boost Users :

Subject: [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 15:48:01


I am struggling to try to get bind/function working like I want. Some code
first though:

1. We have a POD object.

namespace POD{ class POD{};}

2. We have another class that wants to do something with a POD*.

namespace Alpha{ class MethodsInHere{

     void doesSomething(POD::POD* arg0){}

};}

3. We have a third class, essentially a function handler, that has a
boost::function reference whose signature matches the method in #2, and a
constructor which wants to set the reference.

namespace EventHandler{ class EventHandler{

    public:
        EventHandler(boost::function<void (POD::POD*)>& function):
assign_to_me(function){}

        boost::function<void (POD::POD*)>& assign_to_me;
    };}

4. Finally, we have an initialization class. This class wants to
instantiate the EventHandler object, and to do so needs to bind the method
in #2 to pass in as an argument.

POD::POD* instance = new POD::POD();
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. If I'm
right, what sort of workaround could solve this?



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