November 14, 2014
https://issues.dlang.org/show_bug.cgi?id=13586

--- Comment #20 from Andrei Alexandrescu <andrei@erdani.com> ---
(In reply to Sobirari Muhomori from comment #19)
> If the caller owns the arguments, it can also help with issue 12684 and similar.

Once the callee gets called, it must own its by-value arguments. That way we essentially avoid C++'s issue with unnecessary copying (callee copies, call, caller makes a copy inside, callee destroys the copy) without a costly feature (C++'s rvalue references).

--
November 17, 2014
https://issues.dlang.org/show_bug.cgi?id=13586

--- Comment #21 from Sobirari Muhomori <dfj1esp02@sneakemail.com> ---
(In reply to Andrei Alexandrescu from comment #20)
> C++'s issue with unnecessary copying
I see it as a choice between two suboptimal implementations. The copying happens because the callee is forced to own its arguments. D already does some things differently from C++ to be efficient, I think something similar can be done in this case too.

--
February 19, 2015
https://issues.dlang.org/show_bug.cgi?id=13586

--- Comment #22 from github-bugzilla@puremagic.com ---
Commits pushed to 2.067 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/aea25d6b6ea8383058f4987fe11ae16bbda18852 fix Issue 13586 - Destructors not run when argument list evaluation throws

https://github.com/D-Programming-Language/dmd/commit/11276b83f93a301a7d258e72bf8cea6a504d28b7 Merge pull request #4078 from WalterBright/fix13586

--
1 2 3
Next ›   Last »