错误:函数模板无法转换,从'int'转换为'double'

时间:2016-11-15 21:40:28

标签: c++

我正在尝试实现一个功能模板

template <class T>
T max(T& t1, T& t2)
{
    return t1 < t2 ? t2 : t1;
}

我称之为  max<double>(33, 44.2),所以我期待它将int转换为double并将结果以double形式给出,而不是我收到错误:

无法转换,从'int'转换为'double'

1 个答案:

答案 0 :(得分:2)

没有引用(或使用const引用)它将起作用:

template <class T>
T max(T t1, T t2)
{
    return t1 < t2 ? t2 : t1;
}

然后

max<double>(33, 44.2)