Visual C++ 6.0和visual studio 2010的兼容问题
#include<iostream>using namespace std;
#include<cstring>
template<class _T>
void swap(_T &x ,_T &y)
{
_T i;
i=x;x=y;y=i;
}
template<class type>
void Swap(type *a,type *b)
{
type temp[10];
strcpy(temp,a);
strcpy(a,b);
strcpy(b,temp);
}
void main()
{
int m=2;
int n=5;
cout<<m<<" "<<n<<endl;
swap(m,n);
cout<<m<<" "<<n<<endl;
char a[]="12",b[]="9";
cout<<a<<" "<<b<<endl;
Swap(a,b);
cout<<a<<" "<<b<<endl;
}
我是大一的学生,这是我在vc++6.0上写的一段代码,可以执行,可是在visual studio 2010上运行就是错的,请问怎么改?因为用vc++6.0用惯了,用visual studio2010,编译后下面的错误提示有点看不懂,就比如说上面这个错误提示吧:
1>------ 已启动生成: 项目: 模板, 配置: Debug Win32 ------
1> main.cpp
1>e:\c++代码\模板\模板\main.cpp(23): error C2668: “swap”: 对重载函数的调用不明确
1> e:\c++代码\模板\模板\main.cpp(5): 可能是“void swap<int>(_T &,_T &)”
1> with
1> [
1> _T=int
1> ]
1> d:\program files (x86)\microsoft visual studio 10.0\vc\include\utility(100): 或 “void std::swap<std::ios_base::iostate>(_Ty &,_Ty &)”
1> with
1> [
1> _Ty=std::ios_base::iostate
1> ]
1> 尝试匹配参数列表“(int, int)”时
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
能不能解释一下?谢了!