Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么std::swap已移至<utility>C++11 的标头?
std::swap
<utility>
N3290 C.2.7 说:
17.6.3.2 对原始功能的影响:功能交换移动到不同的标题 理由:移除对交换的依赖。<algorithm> 对原始功能的影响:已编译的有效 C++ 2003 代码预期交换在其中,<algorithm>可能必须改为包含<utility>.
17.6.3.2
对原始功能的影响:功能交换移动到不同的标题
理由:移除对交换的依赖。<algorithm>
<algorithm>
对原始功能的影响:已编译的有效 C++ 2003 代码预期交换在其中,<algorithm>可能必须改为包含<utility>.
我无法理解粗体部分。正在谈论什么样的依赖,为什么?
委员会希望允许您在swap()不引入对大型且更复杂的<algorithm>头文件的编译时依赖的情况下使用。因为swap()使用如此广泛,所以让您在尽可能少的额外负担的情况下提取其定义是有意义的;这通常会导致不需要的文件的编译时间更快<algorithm>。它的新家允许在不引入不必要的开销的情况下使用它。
swap()