Por que meu compilador C ++ não pode deduzir o argumento do modelo para a função boos
Defino um método como este:
template <class ArgT>
void foo(ArgT arg, ::boost::function< void(ArgT) > func)
{
func(arg);
}
e use-o assim - por exemplo -:
foo(2, [](int i) -> void { cout << i << endl; });
Por que o compilador não pode deduzir o tipo, pois é definitivamente umint
?
Eu recebo'void foo(ArgT,boost::function<void(ArgT)>)' : could not deduce template argument for 'boost::function<void(ArgT)>' from 'anonymous-namespace'::<lambda0>'
.