foo() = 42; <- How can this be possible?
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/57483/what-are-the-differences-between-pointer-variable-and-reference-variable-in-c">What are the differences between pointer variable and reference variable in C++?</a>  </p>
</blockquote>



<p>I was reading an article on rvalues in order to understand universal references from the new C++ Standard and found the following as an example of lvalue</p>

<pre><code>// lvalues:
//
int i = 42;
i = 43; // ok, i is an lvalue
int* p = &amp;i; // ok, i is an lvalue
int&amp; foo();
foo() = 42; // ok, foo() is an lvalue
int* p1 = &amp;foo(); // ok, foo() is an lvalue
</code></pre>

<p>What does <code>int&amp; foo();</code> mean here?</p>
