Notes on Defective C++
Christopher Wright
dhasenan at gmail.com
Sat Dec 13 16:53:58 PST 2008
Jim Hewes wrote:
> Maybe it's better to think of memory and non-memory resources as different
> things and handle them differently as opposed to lumping them together using
> the same mechanism. I'm not sure if there is already a way to deal with this
> in D as I'm not quite that familiar with D.
It requires that you design your classes differently. You were pretty
much asking, if you don't change your design from something that worked
in C++, will it work in D? And it won't, if you use D classes.
If you use D structs in D2, you get constructors and destructors for
them, and you can use RAII like in C++. In D1 and D2, you can use scope
classes (or scope instances).
In D, you could use the C# approach, though you don't have a using
statement. You can instead use scope:
scope foo = new Disposable;
// do stuff
Or:
auto foo = new Disposable;
scope (exit) foo.dispose();
More information about the Digitalmars-d
mailing list