在c++ 0x中,std::swap仍然是通过包含算法来定义的吗?
Will std::swap still be defined by including algorithm in C++0x?
在c++ 0x中,swap
函数模板从<algorithm>
移到了<utility>
。前者在c++ 0x中包括后者吗?或者它们都包含一个定义swap
的通用头文件?
换句话说,下面的代码能保证在c++ 0x中编译吗?
#include <algorithm> // will this pull in std::swap?
// ...
using std::swap;
swap(a, b);
FDIS (n3290),在附录C, "兼容性",C.2.7中说:
17.6.3.2
对原始功能的影响:函数交换移动到不同的位置头
基本原理:移除对
交换。 影响原始功能:有效的c++ 2003代码,已编译预期交换到
可能必须包含
所以,不,它不能保证编译,这是一个破坏性的改变。个别实现是否真的会破坏c++ 03代码是另一回事。正如你所指出的,他们很容易不,通过定义swap
头。但是,在使c++ 03代码更容易移植到c++ 0x和帮助人们编写严格符合c++ 0x之间存在一个选择。
相关文章:
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 编译包含字符串的代码时遇到问题
- 为什么这个运算符<重载函数对 STL 算法不可见?
- c++库的公共头文件中应该包含什么
- 将包含C样式数组的对象初始化为成员变量(C++)
- 是否需要删除包含对象的"pair"?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 将来C++的标准库会包含网络、字符串算法,..吗?
- 如何使用"is_member_function_pointer"在算法中包含/排除成员函数调用
- 建议一个合适的算法来合并包含类对象的两个数组(不重复)
- 这是在包含非唯一元素的未排序数组中选择第k个最大数的最快算法
- 用于从包含最大求和的整数数组中提取子数组的算法
- 检查字符串是否包含另一个字符串算法
- 用于确定 2x2 正方形是否包含数字 1-4(无重复)的算法
- 为什么c++算法包含最多2*(count1+count2)-1的比较
- 计算包含某些项的列表集合的唯一排列的算法
- 在c++ 0x中,std::swap仍然是通过包含算法来定义的吗?
- 并行提案 N3554 中的 [包含/排除]_scan算法<algorithm>