このコードをコンパイルすると、次のエラーが表示されます
オーバーロードの呼び出し
swap(int&, int&)
があいまいです
しかし、ここでは swap 関数を 1 つだけ書きました。
関数があいまいな理由と、プログラムを正しく実行するために必要な変更を教えてください。
using namespace std;
template <class T>
void swap(T& x, T& y)
{
T temp;
temp = x;
x = y;
y = temp;
}
int main()
{
int a, b;
cout << "Enter two elements: ";
cin >> a;
cin >> b;
swap(a, b);
cout << "a is "<<a << '\t'<<"b is " << b << std::endl;
return 0;
}
スワップ関数しかないのに、スワップ関数がオーバーロードされたのはなぜですか?