returning struct, destructor

Eugene Wissner via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Dec 21 07:01:20 PST 2016


On Wednesday, 21 December 2016 at 14:15:06 UTC, John C wrote:
> On Wednesday, 21 December 2016 at 11:45:18 UTC, Eugene Wissner 
> wrote:
>> This prints 3 times "Destruct" with dmd 0.072.1. If I remove 
>> the if block, it prints "Destruct" only 2 times - the behavior 
>> I'm expecting. Why?
>
> Possibly to do with named return value optimisation.

Isn't an optimization that changes the behavior bad? I had a 
crash in the code where the destructor did something meaningfull, 
freed the memory (the same pointer) twice.


More information about the Digitalmars-d-learn mailing list