[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost-users
Subject:    Re: [Boost-users] shared_ptr and signals
From:       Frank Mori Hess <fmhess () speakeasy ! net>
Date:       2008-12-31 12:30:05
Message-ID: 19762.1230744605 () speakeasy ! net
[Download RAW message or body]

On Tue Dec 30 12:47 , Steven Watanabe <watanabesj@gmail.com> sent:

>James C. Sutherland wrote:
>> Is it possible to use a shared_ptr object in a signal?
>>
>> I want something like
>>
>> struct A{
>> ...
>> void operator()(){ ... }
>> ...
>> };
>> typedef boost::signal Signal;
>> Signal mySignal;
>>
>> boost::shared_ptr a( new A() );
>> mySignal.connect(a);

>Wrap the shared_ptr in a function object
>
>struct deref_call {
> void operator()() const {
> (*f)();
> }
> boost::shared_ptr f;
>};

bind can also be used to do this, since shared_ptr can be passed as the
"this" argument when binding member functions:

boost::shared_ptr a( new A() );
mySignal.connect(boost::bind(&A::operator(), a));

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic