我有以下模板函數:獲取函數的第一個參數的類型模板函數的返回類型
template<class T, class F> T function(F& f) {
...
T t;
f(t);
return t;
}
據預計以這種方式使用帶有F與形式
void some_function(SomeType& s);
function<SomeType>(some_function);
第一個模板參數似乎是多餘的,因爲可以從參數的參數推導出來ter功能。 問題是 存在一種方法來擺脫第一個模板參數?
喜歡的東西
template<class F> first_param_type<F> function(F& f) {
...
first_param_type<F> t;
f(t);
return t;
}
所以,我可以用它作爲
function(some_function);
你必須做雖然明確的轉換,這是刺激性。 –
對不起,我錯過了。我在一分鐘內修好它。感謝您的通知。 –