title: Move assignment operator and `if (this != &rhs)`
body: <p>In the assignment operator of a class, you usually need to check if the object being assigned is the invoking object so you don't screw things up:</p>
  
  <pre><code>Class&amp; Class::operator=(const Class&amp; rhs) {
      if (this != &amp;rhs) {
          // do the assignment
      }
  
      return *this;
  }
  </code></pre>
  
  <p>Do you need the same thing for the move assignment operator? Is there ever a situation where <code>this == &amp;rhs</code> would be true?</p>
  
  <pre><code>? Class::operator=(Class&amp;&amp; rhs) {
      ?
  }
  </code></pre>