What is going on here?
Shachar Shemesh via Digitalmars-d
digitalmars-d at puremagic.com
Wed Mar 4 11:31:10 PST 2015
On 04/03/15 17:43, Steven Schveighoffer wrote:
> On 3/4/15 8:43 AM, Shachar Shemesh wrote:
>
>> I'd expect A's destructor to run, which does not seem to be the case.
>
>
> I believe destructors are not run when you throw inside a constructor.
> So plan to deallocate if the ctor throws:
>
> a = A(var + 1);
> scope(failure) destroy(a);
>
> -Steve
That's pretty horrible. So now I need to keep track of the
implementation of my members to figure out whether it is okay to skip
the destructor or not.
All of this from a language that claims to support RAII, which was
invented precisely so the programmer does not have to keep track of
those things.
I think this is precisely the sort of corner cases that drive people
away from C++.
Shachar
More information about the Digitalmars-d
mailing list