On Tuesday, 9 June 2015 at 15:08:07 UTC, Steven Schveighoffer wrote:
Because it's not moved. It's written in the stack where it will be passed to the next function.

Hmm, you mean the callee's function parameters stack? That's not always going to work, e.g., on Win64 the first 4 args are passed in registers, always. And, as I said, that ABI doesn't support byval passing of types > 64 bits (let's exclude vector types here), so rvalues > 64 bits can sadly not be constructed in-place without violating the Win64 ABI - they'll have to be passed byref.

Reply via email to