Nat Goodspeed wrote:
e r wrote:
i'm thinking of using something like
some_type* fo = new boost::bind(&A::f,_1);
and use *fo in place of boost::bind(...). is this crazy? what should some_type be?
You can use boost::function to store the result of a boost::bind expression:
http://boost.org/libs/bind/bind.html#with_boost_function
For instance, you might write:
boost::function<void(const A&)> bound = boost::bind(&A::f, _1);
depending on the signature of A::f.
Note, don't use 'new', just assign the value of boost::bind.
thanks! i still need a little help, if possible. boost::function<void(const boost::shared_ptr<A>&)> deref = boost::bind(&boost::shared_ptr<A>::operator*, _1); Functor ftor; std::vector<boost::shared_ptr<A> > vec = ...; for_each( vec.begin(), vec.end(), boost::bind( boost::ref(ftor), boost::bind(&boost::shared_ptr<A>::operator*, _1) ) );//fine for_each( vec.begin(), vec.end(), boost::bind( boost::ref(ftor), deref ) );//not fine. see error below //no match for call to ‘(Functor) (boost::function<void ()(const //boost::shared_ptr<A>&), std::allocator<void> >&)