0
我在嘗試編譯下面的代碼時收到以下錯誤。 我期待的功能模板會自動推斷這些類的參數類型,但這不會發生 此代碼不會複製alsowhen我讓類型顯式。模板函數中的參數推演失敗
什麼C++規則我沒有考慮/在這個過程中missin和什麼是修復?
問候
AFG
error: no matching function for call to ‘wrap_call(test<ciccio>&, get_value&)
template <typename T>
struct test{
typedef T value_type;
T m_data;
};
template<typename T,typename F>
typename F::return_type wrap_call(T& obj ,F& f){
return f.operator()(obj);
}
struct ciccio{
int m_value;
};
struct get_value
: std::unary_function<test<ciccio>,ciccio*>
{
ciccio* operator()(test<ciccio>& obj){
return &obj.m_data;
}
};
int main(){
test<ciccio> obj;
get_value g;
ciccio* p = (obj,g);
// same error if I make the types explicit
//ciccio* p = wrap_call<test<ciccio>,get_value>(obj,g);
return 0;
};
oooops! ..感謝安迪..我花了1小時就... – 2013-03-16 13:43:57
@AbruzzoForteeGentile:沒問題,發生了:) – 2013-03-16 13:44:20
@AbruzzoForteeGentile:如果這解決了你的問題,你能否考慮接受答案? – 2013-03-16 13:58:18