What makes moving objects faster than copying?
<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>