Thorsten Ottosen | 15 Jul 10:26

Re: how can I return a 'null' smart pointer?

Marshall Clow skrev:
> 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.

I concur, but I suggest you simply add a precondition:

   assert( index < v.size() )

-Thorsten

Gmane