相关疑难解决方法(0)

为什么我的C++编译器不能推导出boost函数的模板参数?

我定义了一个像这样的方法:

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>'.

c++ templates

9
推荐指数
2
解决办法
1663
查看次数

标签 统计

c++ ×1

templates ×1