title: Are unnamed objects and temporary objects equivalent?
body: <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="https://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>