Notes on Defective C++

Christopher Wright dhasenan at
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

More information about the Digitalmars-d mailing list