#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string str1 = "good", str2 = "luck";
swap(str1,str2); /*Line A*/
int x = 5, y= 3;
swap(x,y); /*Line B*/
}
如果我評論行B代碼編譯(http://www.ideone.com/hbHwf)而註釋行A代碼無法編譯(http ://www.ideone.com/odHka),我收到以下錯誤:交換失敗的情況下int和字符串的情況下工作
error: ‘swap’ was not declared in this scope
爲什麼不讓我在第一種情況下得到任何錯誤?因爲Argument dependent lookup