このコードは、double から int への変換に関する警告を表示します。
template <class T>
int f(T x)
{
return x;
}
int main()
{
cout << f(3.5);
return 0;
}
ただし、テンプレートを使用しない場合は、以下のように double から int に変換して 3 を出力できます。
int f(float x)
{
return x;
}
int main()
{
cout << f(3.5);
return 0;
}
テンプレート化されていないサンプルはコンパイルできますが、テンプレート化されたサンプルはコンパイルできません。テンプレートを使用すると、コンパイラが変換できないのはなぜでしょうか。
テンプレートを使用すると、コンパイラが関数の戻り値の型を double から int に変換できないのはなぜですか??