我定义了一个像这样的方法:
template <class ArgT>
void foo(ArgT arg, ::boost::function< void(ArgT) > func)
{
func(arg);
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用 - 例如 - :
foo(2, [](int i) -> void { cout << i << endl; });
Run Code Online (Sandbox Code Playgroud)
为什么编译器不能推断出类型,因为它肯定是一个int?
我得到'void foo(ArgT,boost::function<void(ArgT)>)' : could not deduce template argument for 'boost::function<void(ArgT)>' from 'anonymous-namespace'::<lambda0>'.