15 Jul 15:49
Re: how can I return a 'null' smart pointer?
From: Filip Konvička <filip.konvicka <at> logis.cz>
Subject: Re: how can I return a 'null' smart pointer?
Newsgroups: gmane.comp.lib.boost.user
Date: 2008-07-15 13:49:54 GMT
Subject: Re: how can I return a 'null' smart pointer?
Newsgroups: gmane.comp.lib.boost.user
Date: 2008-07-15 13:49:54 GMT
Marshall Clow (14.7.2008 23:50):
> At 4:43 PM -0500 7/14/08, Meryl Silverburgh wrote:
>> Hi,
>>
>> Can you please tell me how can I return a 'null' smart pointer?
>>
>> typedef shared_ptr<MyA> MyAPtr;
>> typedef vector<MyAPtr> MyAVector;
>>
>> For example,I have this code, which return NULL in an error situation:
>>
>> MyAPtr myfunction(MyAVector& v, int size) {
>> if (index < v.size()) {
>> return v[index];
>> } else {
>> // how can I return NULL here?
>> }
>> }
>>
>> How can I achieve that when I use boost smart pointer?
>
> I suggest that you throw an exception here, rather than returning some
> bogus value.
What is so bad in general about returning uninitialized smart pointers?
Is that more costly than throwing an exception? I mean, there is even
some support for testing a smart pointer for validity built into
shared_ptr, so why not use it where appropriate?
Cheers,
Filip
RSS Feed