On 09/26/2016 07:15 PM, Nordlöw wrote:
On Monday, 26 September 2016 at 16:28:18 UTC, ag0aep6g wrote:
Inside `top`, `a` is an lvalue. It wouldn't be correct to move `a`
just because it originated from an rvalue.

AFAICT, `top` can be moved in the call to `sub` if it's not used not
returned below the call, right?

(I'm assuming `top` is a typo and you meant `a`.)

I don't know. To the layman that I am, it looks similar to tail call elimination. When the last use of `a` is in a call, it seems plausible that it could be possible to skip the postblit and the destructor, and let the called function take care of it. But it's probably not as simple as that.

Reply via email to