Почему мой компилятор C++ не может вывести аргумент шаблона для функции boost?

Я определяю метод так:

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)' : could not deduce template argument for 'boost::function' from 'anonymous-namespace'::'

9
задан mister why 3 May 2011 в 14:30
поделиться