Meryl Silverburgh wrote:
On 5/8/07, Nat Goodspeed
wrote: -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users- bounces@lists.boost.org] On Behalf Of Meryl Silverburgh Sent: Tuesday, May 08, 2007 9:32 AM To: boost-users@lists.boost.org Subject: [Boost-users] Pointer in function parameter?
vector< boost::shared_ptr<A> > aVector;
aFunc(aVector[0]) ; // just call a
My question is should I change the function parameter of aFuncion from this:
void aFunc(A* aPtr) { // access aPtr }
to this:
void aFunc(shared_ptr<A> aPtr) { // access aPtr }
[Nat] Looks reasonable to me... I believe the docs say that it's conventional to pass shared_ptr by value rather than (e.g.) const reference so that the ref count will be adjusted properly.
Thanks. But what if I have
void aFunc(const A* aPtr) { // access aPtr }
should I change it to
void aFunc(const shared_ptr<A> aPtr) { // access aPtr } Hi,
I would say: Yes, you should change it to the 2nd variant, BUT sometimes the first variant is also ok. You could use the 1st variant, but you will loose your benefit from shared_ptr<>. You have to gurantee that the shared_ptr<> is not destroyed while you are running aFunc(). So use the 2nd variant and choose the safe way. I hope it is a little more clear to you now! Much fun Manuel Jung
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users