template <class T>
void swap(T& a, T& b)
{
T tmp = a;
a = b;
b = tmp
}int main(int argc, char* argv[])
{
int a=12;
int b=32;
swap(a,b);
printf("a=%d b=%d!\n",a ,b); return 0;
}报错如下:
D:\my_code\c1\c1.cpp(38) : error C2667: 'swap' : none of 2 overload have a best conversion
D:\my_code\c1\c1.cpp(38) : error C2668: 'swap' : ambiguous call to overloaded function
Error executing cl.exe.
void swap(T& a, T& b)
{
T tmp = a;
a = b;
b = tmp
}int main(int argc, char* argv[])
{
int a=12;
int b=32;
swap(a,b);
printf("a=%d b=%d!\n",a ,b); return 0;
}报错如下:
D:\my_code\c1\c1.cpp(38) : error C2667: 'swap' : none of 2 overload have a best conversion
D:\my_code\c1\c1.cpp(38) : error C2668: 'swap' : ambiguous call to overloaded function
Error executing cl.exe.
int main()
{
int a = 12;
int b = 32;
swap<int>(a, b);
......
}
namespace additional
{
template <typename T>
void swap(T& t1, T& t2)
{
T temp = t1;
t1 = t2;
t2 = temp;
}
}然后使用additional::swap(a,b);