我有一個被定義爲功能如下:沒有匹配的函數調用模板函數與常量參數
template < class T> T doSomething(const T value, const T value2, const T value3)
{
T temp = value;
//Do stuff
return temp ;
}
在我的主
,我去把它叫做如下:
doSomething(12.0, 23.0f, 2.0f);
我得到一個錯誤說沒有匹配函數調用doSomething(double, float, float)
。
我試着用const_cast,但似乎沒有解決這個問題。任何幫助,將不勝感激。
注意,另一種選擇是定義了三種模板類型T1,T2,T3三個函數的參數,如果這是有道理在這種情況下。 – leemes 2012-08-08 16:54:45
啊,好的,非常感謝你! – user1496542 2012-08-08 16:57:34
@leemes:或者,避免類型推導並調用特定的專業化:'doSomething(12.0,23.0f,2.0f)',這將使得參數的推廣與非模板相同(即,促進/不推廣是類型扣除失敗,而不是它是一個模板) –
2012-08-08 16:59:01