title: move semantics std::move
body: <p>I don't understand very well the <code>std::move</code> function</p>
  
  <pre><code>template &lt;class T&gt;
  typename remove_reference&lt;T&gt;::type&amp;&amp;
  move(T&amp;&amp; a)
  {
      return a;
  }
  </code></pre>
  
  <p>why <code>remove_reference</code> ?
  could someone give me a simple explanation ?</p>