Subject: Re: [boost] Weak functor: Interested? (How to boost::bind to a weak_ptr)
From: Roman Perepelitsa (roman.perepelitsa_at_[hidden])
Date: 2012-01-11 03:19:00
2012/1/10 Vladimír Tøebický <vladimir.trebicky_at_[hidden]>
> On Tue, Jan 10, 2012 at 10:34 PM, Roman Perepelitsa
> <roman.perepelitsa_at_[hidden]> wrote:
> > 2012/1/10 Vladimír Tøebický <vladimir.trebicky_at_[hidden]>
> >> boost::function<void(int)> f = boost::bind(boost::weak_fn(&Foo::bar,
> >> some_weak_ptr), _1);
> >> f(1);
> > It's it better to bind &Foo::bar directly?
> > boost::function<void(int)> f = boost::bind(&Foo::bar, some_weak_ptr,
> > Much simpler in my opinion.
> That cannot be done, boost::bind() indeed accepts references, pointers
> and shared_ptrs for member functions but doesn't accept weak pointers,
> because a weak pointer cannot be trivially converted to shared_ptr (or
> anything that leads to the corresponding class instance).
It can be done. In fact, it has already been done. See
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk