On 15/01/12 11:56 PM, Jonathan M Davis wrote:
On Monday, January 16, 2012 00:41:14 Timon Gehr wrote:
Well, struct literals are lvalues, at least in DMD.
Yeah. I don't understand that. I've argued about it with Walter before.
Apparently they are in C++ as well. I don't understand it. It makes it so that
In C++, struct literals are rvalues. C++ just has a special rule that
const references can bind to rvalues (but non-const references cannot),
and another special rule that when a const reference binds to a
temporary it extends the life of the temporary.
The benefit in C++ is so that you can write one function that takes a
const reference and it works with rvalues as well as lvalues. Taking by
value would be too expensive a lot of the time.