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
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
. Its new home allows it to be used without introducing unneeded overhead.