Recommended way to do RAII cleanly
Simen kjaeraas
simen.kjaras at gmail.com
Mon Jul 12 12:18:38 PDT 2010
Jonathan M Davis <jmdavisprog at gmail.com> wrote:
> Except that that's two statements and it's no longer RAII. The beauty of
> doing
> it entirely in the constructor and destructor is that you only need one
> statement and the whole thing takes care of itself. With scope, you have
> to
> worry about remembering to use scope, and even if you do, that's two
> statements
> instead of one. Obviously, it works, but it's not as clean or elegant.
So use an enum and string mixins:
import std.stdio;
enum bar = q{
writeln( "The bar has opened." );
scope( exit ) {
writeln( "The bar has closed." );
}
};
void main( ) {
writeln( "Entering..." );
mixin( bar );
writeln( "Exiting..." );
}
Output:
Entering...
The bar has opened.
Exiting...
The bar has closed.
--
Simen
More information about the Digitalmars-d-learn
mailing list