当出现这个错误提示的时候,很有可能代码并没有问题,而是编译器的设定问题。
测试代码如下:
#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()即可以顺利通过编译并调用执行。