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