Const ref and rvalues again...

martin kinke at libero.it
Tue Nov 6 17:15:26 PST 2012


On Wednesday, 7 November 2012 at 00:47:04 UTC, Jonathan M Davis 
wrote:
> No, because that would be doing the same thing as C++, which 
> Walter and Andrei
> have already rejected. They specifically do _not_ want there to 
> be any
> ambiguity between whether a const ref variable is an lvalue or 
> rvalue. If they
> were willing to make const ref work the same as C++'s const&, 
> then we would
> never have had this problem in the first place. We specifically 
> need something
> other than const ref. The const ref can continue to work as it 
> does now, but
> we'll have a way to get semantics similar to C++'s const& when 
> we want them.

Wow, now this finally sheds some light on this topic. Do you have 
any links regarding their reasoning?
I simply and utterly fail to comprehend the need for a compiler 
to distinguish between a const reference to a named variable and 
a const reference to an unnamed temporary/literal (which the 
compiler is free to allocate wherever it makes most sense). 
Especially since the compiler could simply allocate and name the 
original rvalue as local variable on the caller's stack before 
the function call and hence transform it automatically to an 
lvalue, i.e., do that, what currently most of us have to 
painfully do by hand.


More information about the Digitalmars-d mailing list