title: decltype(auto) vs auto&& to perform generic handling of function's return type
body: <p>When using <code>auto&amp;&amp;</code> to handle a function returning an lvalue:</p>
  
  <pre><code>int func()
  {
     int v=42;
     return v;
  }
  
  auto &amp;&amp; v = func();
  </code></pre>
  
  <p>What are the consequences of treating <code>v</code> as a reference instead of an lvalue? Do these consequences justify the use of <code>decltype(auto)</code> instead of <code>auto&amp;&amp;</code> to perform generic handling of function's return type?</p>