Notes on Defective C++
Christopher Wright
dhasenan at gmail.com
Mon Dec 8 16:22:04 PST 2008
Jim Hewes wrote:
> On that web page he says that "the lack of garbage collection makes C++
> exceptions ... inherently defective." I'm not sure I agree with that. I
> think the opposite is more true. When you're using garbage collection,
> you can't rely on destructors to release resources (notably non-memory
> resources) when exceptions occur. In C# for example, the solution is
> supposed to be the 'using' statment, but that's only useful in the
> context of a function.
In D, you have scope guards, which accomplish the same thing as using in
C#. Except with more granularity.
And what are you going to throw an exception from, besides a function? I
think you are talking about situations like this:
class A
{
private File file;
this () { file = new File ("somePath"); }
// some operations with side effects that maybe close the file
}
void foo ()
{
auto a = new A;
// I want to make sure A's file is cleaned up...how?
}
More information about the Digitalmars-d
mailing list