|
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