Boost logo

Boost :

Subject: Re: [boost] Proposed new RAII Library
From: Ivan Sorokin (vanyacpp_at_[hidden])
Date: 2012-09-14 16:27:08

On 12.09.2012 05:40, Andrew Sandoval wrote:

> The first of these is RAIIFunction (I'm open to other names and coding
> conventions).

This approach has one problem.

The typical usage is something like that:

FILE* f = fopen(...);
if (!f)

RAIIFunction<void> close_f = [f](){ fclose(f); } // may throw!!!

The construction of std::function for RAIIFunction may throw
std::bad_alloc. In that case you will get leaked file handle.

That is why approach with scope capturing reference to a base class is

> The other one I call just RAIIWrapper, and it works with static
> deleter functions taking a single argument of the type being delete.

This is somewhat similar to my library RCPP.

Boost list run by bdawes at, gregod at, cpdaniel at, john at