2016-11-15 6 views
-1

に、変換することはできません私は関数テンプレートエラー:関数テンプレートは、「INT」から「ダブル」

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

を実装しようとしていると私は max<double>(33, 44.2)としてそれを呼び出すので、私はそれがint型に変換されます期待しています倍増し、私にダブルで結果を出すために、代わりに私はエラーを取得しています:

は「INT」からそれを参照(またはconstの参照を持つ)なしで動作します「ダブル」

+1

変更テンプレートパラメータに 'のconst T&'。非「コンス」参照は一時オブジェクトにバインドできません。 –

+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)。あなたは私の答えをninja'dした:P –

関連する問題