title: What does auto&& tell us?
body: <p>If you read code like</p>
  
  <p><code>auto&amp;&amp; var = foo();</code></p>
  
  <p>where <code>foo</code> is any function returning by value of type <code>T</code>. Then <code>var</code> is an lvalue of type rvalue reference to <code>T</code>. But what does this imply for <code>var</code>? Does it mean, we are allowed to steal the resources of <code>var</code>? Are there any reasonable situations when you should use <code>auto&amp;&amp;</code> to tell the reader of your code something like you do when you return a <code>unique_ptr&lt;&gt;</code> to tell that you have exclusive ownership? And what about for example <code>T&amp;&amp;</code> when <code>T</code> is of class type?</p>
  
  <p>I just want to understand, if there are any other use cases of <code>auto&amp;&amp;</code> than those in template programming; like the ones discussed in the examples in this article <a href="http://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers" rel="noreferrer">Universal References</a> by Scott Meyers.</p>