我正在尝试实现一个功能模板
template <class T>
T max(T& t1, T& t2)
{
return t1 < t2 ? t2 : t1;
}
我称之为
max<double>(33, 44.2)
,所以我期待它将int转换为double并将结果以double形式给出,而不是我收到错误:
无法转换,从'int'转换为'double'
答案 0 :(得分:2)
没有引用(或使用const引用)它将起作用:
template <class T>
T max(T t1, T t2)
{
return t1 < t2 ? t2 : t1;
}
然后
max<double>(33, 44.2)