rvalue references

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Tue Jun 2 23:58:13 PDT 2015


On Wednesday, 3 June 2015 at 03:43:09 UTC, bitwise wrote:
> I can't remember right now what the reasoning was for 'const 
> ref' not to take
> rvalues in the first place. I think it was that you could 
> escape the reference,
> but this isn't true anymore with DIP25 right?

The one to ask is Andrei. I can never remember all of the 
details, because it has to do with the details of how it causes 
problems in C++. IIRC, the problem stems from the fact that you 
can no longer tell whether the parameter represents an lvalue or 
a temporary. I don't know how big a deal it really is, but Andrei 
is emphatic about it.

But regardless, because of how restrictive const is in D, 
requiring const to have a parameter accept both lvalues and 
rvalues is just too restrictive anyway. A lot of the same 
developers who are insistent on having rvalue references for 
efficiency are exactly the sort of developers who will avoid 
const, because it's physical const and not logical const and thus 
prevents stuff like caching or lazy loading.

- Jonathan M Davis


More information about the Digitalmars-d mailing list