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() 関数で同じテンプレートまたは他のテンプレートを使用できるように、上記のコードを変更する他の方法はありますか? 全体として、テンプレート自体を使用してすべての機能を管理する必要があります。