如何修改以下代码,以便即使在 call() 函数中也可以使用相同的模板 T?
#include<iostream>
using namespace std;
template<class T>
void swap(T &x,T &y)
{
T temp=x;
x=y;
y=temp;
}
/*if i use again the"template<class T>" here i have the error "Identifier T is
undefined" to be gone but then if i compile i have several other errors.. like
"could be 'void swap<T>(T &,T &)' " and some other errors*/
void call(T &x,T &y)
{
swap(x,y);
cout<<x<<y;
}
int main()
{
int num;
cout<<"Enter 1 or 0 for int or float\n";
cin>>num;
if(num)
{
int a,b;
cin>>a>>b;
call(a,b);
}
else
{
float a,b;
cin>>a>>b;
call(a,b);
}
}
模板函数在开始时与模板声明相关联。同一模板不能再次用于另一个功能吗?是否有其他方法可以修改上述代码,以便我可以在 call() 函数中使用相同或任何其他模板?总的来说,我需要使用模板本身来管理所有功能。