title: What makes moving objects faster than copying?
body: <p>I have heard Scott Meyers say "<code>std::move()</code> doesn't move anything" ... but I haven't understood what it means.</p>
  
  <p>So to specify my question consider the following:</p>
  
  <pre><code>class Box { /* things... */ };
  
  Box box1 = some_value;
  Box box2 = box1;    // value of box1 is copied to box2 ... ok
  </code></pre>
  
  <p>What about:</p>
  
  <pre><code>Box box3 = std::move(box1);
  </code></pre>
  
  <p>I do understand the rules of lvalue and rvalue but what I don't understand is what is actually happening in the memory? Is it just copying the value in some different way, sharing an address or what? More specifically: what makes moving faster than copying?</p>
  
  <p>I just feel that understanding this would make everything clear to me. Thanks in advance!</p>
  
  <p><strong>EDIT:</strong> Please note that I'm not asking about the <code>std::move()</code> implementation or any syntactic stuff.</p>