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.