On 19 October 2016 at 06:22, Andrei Alexandrescu via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
On 10/18/2016 04:15 PM, Atila Neves wrote:

I think I get it; I'm just not sure given the comments that pop up in
the forum. Isn't one of the main reasons distinguishing between these two?

void fun(ref const Foo);
void fun(Foo);

If they can't be distinguished, you don't get move semantics "for free".

That's right, thanks Atila. -- Andreu

This is obvious though, lval calls the first, rval calls the second. Surely most programmers would intuitively expect that behaviour? Is there some issue there?