函数指针的模板参数推导失败
Template argument deduction failed for function pointer
编译器无法扣除函数指针的模板参数。
template< class Function >
class foobar {
Function f;
public:
foobar(Function _f) : f(_f) {}
};
函数定义为
bool foo(string a, string b) {
// SOMETHING
}
我在下一行遇到问题
foobar f(foo);
编译错误
error: missing template arguments before ‘f’
目前,无法通过模板化构造函数推断对象的类型。但是,制造商功能可以提供帮助:
template<class T>
foobar<T> make_foobar(const T& t) {
return Foobar<T>(t);
}
...
auto f = make_foobar(foo);
编译器无法扣除函数指针的模板参数。
template< class Function >
class foobar {
Function f;
public:
foobar(Function _f) : f(_f) {}
};
函数定义为
bool foo(string a, string b) {
// SOMETHING
}
我在下一行遇到问题
foobar f(foo);
编译错误
error: missing template arguments before ‘f’
目前,无法通过模板化构造函数推断对象的类型。但是,制造商功能可以提供帮助:
template<class T>
foobar<T> make_foobar(const T& t) {
return Foobar<T>(t);
}
...
auto f = make_foobar(foo);