Why has std::swap been moved to the header for C++11?
N3290 C.2.7 says:
17.6.3.2
Effect on
The committee wanted to allow you to use swap() without introducing a compile-time dependency on the large and more complex <algorithm> header file. Because swap() is so widely used, it makes sense to let you pull in its definition with as little additional baggage as possible; this will generally lead to faster compile times for files that don't otherwise need <algorithm>. Its new home allows it to be used without introducing unneeded overhead.