т.е. контекст, в котором компилятор никогда не будет пытаться вывести параметр шаблона из параметра функции. Это можно сделать следующим образом:

еделяю метод следующим образом:

template <class ArgT>
void foo(ArgT arg, ::boost::function< void(ArgT) > func)
{
    func(arg);
}

и используйте это так - например -:

foo(2, [](int i) -> void { cout << i << endl; });

Почему компилятор не может определить тип, так как он определенноint?

я получил'void foo(ArgT,boost::function<void(ArgT)>)' : could not deduce template argument for 'boost::function<void(ArgT)>' from 'anonymous-namespace'::<lambda0>'.

Ответы на вопрос(2)

Ваш ответ на вопрос