C++ Primer(第5版) 练习 18.18
练习 18.18 已知有下面的swap的典型定义(参见13.3节,第457页),当mem1是一个string时程序使用swap的哪个版本?如果mem1是int呢?说明在这两种情况下名字查找的过程。
void swap(T v1, T v2){
using std::swap;
swap(v1.mem1, v2.mem1);
//交换类型T的其他成员
}
环境:Linux Ubuntu(云服务器)
工具:vim
解释
//如果是string,先查找string的作用域内是否有swap,然后在std中查找
//如果是int,直接在std中查找
void swap(T v1, T v2){
using std::swap;
swap(v1.mem1, v2.mem1);
//交换类型T的其他成员
}