C++ 函数指针的模板参数推断失败
编译器无法扣除函数指针的模板参数C++ 函数指针的模板参数推断失败,c++,templates,function-pointers,C++,Templates,Function Pointers,编译器无法扣除函数指针的模板参数 template< class Function > class foobar { Function f; public: foobar(Function _f) : f(_f) {} }; 我在下面这行遇到了麻烦 foobar f(foo); 编译器错误 error: missing template arguments before ‘f’ 目前,无法通过模板化构造函数推断对象的类型。但是,maker功能可以帮助: tem
template< class Function >
class foobar {
Function f;
public:
foobar(Function _f) : f(_f) {}
};
我在下面这行遇到了麻烦
foobar f(foo);
编译器错误
error: missing template arguments before ‘f’
目前,无法通过模板化构造函数推断对象的类型。但是,maker功能可以帮助:
template<class T>
foobar<T> make_foobar(const T& t) {
return Foobar<T>(t);
}
...
auto f = make_foobar(foo);
模板
foobar make_foobar(施工测试与测试){
返回Foobar(t);
}
...
自动f=制作foobar(foo);
目前,无法通过模板化构造函数推断对象的类型。但是,maker功能可以帮助:
template<class T>
foobar<T> make_foobar(const T& t) {
return Foobar<T>(t);
}
...
auto f = make_foobar(foo);
模板
foobar make_foobar(施工测试与测试){
返回Foobar(t);
}
...
自动f=制作foobar(foo);
模板参数推断适用于函数模板,而不适用于类模板。@KerrekSB,有人建议使用模板构造函数,不过-如果内存可用?@SergeyA:也许吧。但这对OP没有帮助,也不适用于OP…@KerrekSB,是的,但只要稍微修改一下他们的代码就可以帮助OP了。谢谢@KerrekSB。但它可以由编译器在编译时确定,对吗?那么为什么这样一个特性没有实现呢。还有其他方法吗?我可以做同样的模板参数推断,适用于函数模板,而不是类模板。@KerrekSB,有一个模板构造函数的建议,不过-如果内存可用的话?@SergeyA:也许吧。但这对OP没有帮助,也不适用于OP…@KerrekSB,是的,但只要稍微修改一下他们的代码就可以帮助OP了。谢谢@KerrekSB。但它可以由编译器在编译时确定,对吗?那么为什么这样一个特性没有实现呢。还有别的办法吗,我也可以这样做