开发者

Why was std::swap moved to <utility>?

开发者 https://www.devze.com 2023-03-07 07:45 出处:网络
Why has std::swap been moved to the <utility> header for C++11? N3290 C.2.7 says: 17.6.3.2 Effect on original feature: Function swap moved to a different header

Why has std::swap been moved to the <utility> header for C++11?

N3290 C.2.7 says:

17.6.3.2

Effect on original feature: Function swap moved to a different header

Rationale: Remove dependency on <algorithm>for swap.

Effect on original feature: Valid C++ 2003 code that has been compiled expecting swap to be in 开发者_StackOverflow社区<algorithm> may have to instead include <utility>.

I can't understand the part in bold. What kind of dependency is being talked about and why?


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消