这段代码给出了关于从 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?