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