title: C++ ampersand '&' at the end of member function declaration
body: <p>I'm sorry I couldn't come with a better title.</p>
  
  <p>What the last ampersand <code>&amp;</code> means in the following code snippet:</p>
  
  <pre><code>A &amp; A::operator=(A rhs) &amp;
  {
      swap(*this, rhs);
      return *this;
  }
  </code></pre>
  
  <p>Depending on the answer I would like to know if:</p>
  
  <ul>
  <li>it makes sense only for <code>operator=</code> or can also be applied to any function</li>
  <li>it is a new C++11 feature or if it already exists in C++98/03</li>
  </ul>
  
  <p>If you need more context, I found this syntax here: <a href="https://stackoverflow.com/a/12653520/951426">https://stackoverflow.com/a/12653520/951426</a></p>
  
  <p>There is a small explanation but I don't understand.</p>
  
  <p>Edit (formatting and short answer to my questions):</p>
  
  <ul>
  <li>it's not specific to <code>operator=</code></li>
  <li>it is a new C++11 feature necessary due to the new rvalues</li>
  </ul>