Why is it allowed to pass R-Values by const reference but not by normal reference?
<p>The following program</p>
<pre><code>void display(const int&amp; a)
{
    cout &lt;&lt; a ;
}
</code></pre>
<p>will work if called with a literal like this</p>
<pre><code>display(5);
</code></pre>
<p>but without the <code>const</code> it won't work.</p>
<p>So how can a <code>const</code> reference keep pointing to an R-Value (anonymous variable)?</p>