On Thursday, 14 October 2021 at 17:53:57 UTC, Tejas wrote:

Maybe DIP 1040 will automatically solve that?

last use of objects that is a copy gets elided into a move

That is what it states, so maybe this one time, the problem will go away just by waiting?

It would be great, but still, if I understand correctly, it is not perfect solution for lvalue arguments. Consider, e.g., `Tuple` construction from an lvalue. With this DIP and current state of constructor it will be 1 copy (from argument to constructor's parameter) and 1 blit (from parameter to the field). With `auto ref` and forwarding it would be 1 copy from parameter to the field and no blits. Forwarding saves one blit per indirection, i.e., for `tuple` it would be 2 blits vs. 0.


Reply via email to