Are unnamed objects and temporary objects equivalent?
<p>In my effort to understand rvalue references, I have been pondering when the compiler will determine that a particular function argument is an rvalue reference, and when it will determine it to be an lvalue reference.</p>

<p>(This issue is related to reference collapsing; see <a href="http://stackoverflow.com/questions/13725747/concise-explanation-of-reference-collapsing-rules-requested-1-a-a-2">Concise explanation of reference collapsing rules requested: (1) A&amp; &amp; -&gt; A&amp; , (2) A&amp; &amp;&amp; -&gt; A&amp; , (3) A&amp;&amp; &amp; -&gt; A&amp; , and (4) A&amp;&amp; &amp;&amp; -&gt; A&amp;&amp;</a>).</p>

<p>In particular, I have been considering if the compiler will <em>always</em> treat unnamed objects as rvalue references and/or if the compiler will <em>always</em> treat temporary objects as rvalue references.</p>

<p>In turn, this leads me to question whether unnamed objects are equivalent to temporary objects.</p>

<p>My question is: Are unnamed objects always temporary; and are temporary objects always unnamed?</p>

<p>In other words: Are unnamed objects and temporary objects <em>equivalent</em>?</p>
