您的位置:首页 > 其它

error C2668: “swap”: 对重载函数的调用不明确

2016-08-21 10:52 288 查看
当出现

这个错误提示的时候,很有可能代码并没有问题,而是编译器的设定问题。

测试代码如下:

#include <iostream>

using namespace std;

//函数模板
template<typename T>
void swap(T &a,T &b)
{
T temp;
temp = a;
a = b;
b = temp;
}

int main(int ,char **)
{
int a = 1, b = 2;
cout << a << " " << b << endl;
swap<int>(a,b);

return 0;
}貌似有人说过,之所以这样是因为用户自己定义的swap()函数与STL库定义的函数重载出现了问题,经过测试把上述代码中的swap()函数改名为swap2()即可以顺利通过编译并调用执行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: