Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2007-11-02 19:05:52


Mike Tegtmeyer:

> The counter argument that I hear from not-new folks however is that it
> takes some work to not leak the resource during an exception in the
> shared_ptr construction. Therefore, the ugliness to maintain integrity
> diminishes it's usefulness. ie
>
> FILE *in = fopen(...);
> if(!in)
> return/throw badness;
>
> //may throw here, 'in' is lost
> shared_ptr<FILE> fin(in,fclose);

The answer here is much, much easier. 'in' will not be lost. shared_ptr does
invoke the deleter when the constructor throws.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk