title: Why was std::swap moved to <utility>?
body: <p>Why has <code>std::swap</code> been moved to the <code>&lt;utility&gt;</code> header for C++11?  </p>
  
  <p>N3290 C.2.7 says:</p>
  
  <blockquote>
    <p>17.6.3.2</p>
    
    <p>Effect on original feature: Function swap moved to a different header</p>
    
    <p>Rationale: <strong>Remove dependency on <code>&lt;algorithm&gt;</code>for swap.</strong></p>
    
    <p>Effect on original feature: Valid C++ 2003 code that has been compiled expecting swap to be in <code>&lt;algorithm&gt;</code> may have to instead include <code>&lt;utility&gt;</code>.</p>
  </blockquote>
  
  <p>I can't understand the part in bold. What kind of dependency is being talked about and why?</p>