
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