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.

Reply via email to