November 14, 2014 [Issue 13586] Destructors not run when argument list evaluation throws | ||||
---|---|---|---|---|
| ||||
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 [Issue 13586] Destructors not run when argument list evaluation throws | ||||
---|---|---|---|---|
| ||||
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 [Issue 13586] Destructors not run when argument list evaluation throws | ||||
---|---|---|---|---|
| ||||
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 -- |
Copyright © 1999-2021 by the D Language Foundation