2016-11-15 49 views
-1

我想實現一個函數模板錯誤:函數模板,不能轉換,從「詮釋」到「雙」

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

,我把它作爲 max<double>(33, 44.2),所以我希望它會轉換INT將翻一番,給我的結果上雙,而不是我得到一個錯誤:

不能轉換,從「詮釋」到「雙」

+1

更改模板參數'常量T&'。非''contst'引用不能綁定到臨時對象。 –

+0

這不是你得到的錯誤。你試圖把一個常量當作一個左值。使用'T const&tn'。 –

回答

2

它的工作沒有引用(或常量引用) :

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

然後

max<double>(33, 44.2) 
+0

[證明](http://coliru.stacked-crooked.com/a/2e498db6586762fd)。你忍住了我的答案:P –

相關問題