Здравствуйте, igna, Вы писали:
I>Чего Лямбде не хватает?
Если вопрос практический, то не хватает boost::mem_fn вокруг первого параметра bind
VC9 не может откомпилировать такую программу:
#include <iostream>
using namespace std;
#include <boost/lambda/bind.hpp>
using namespace boost::lambda;
class X {
public:
template <class T>
void print(T t) const
{
cout << t << '\n';
}
};
int main()
{
X x;
bind(&X::print<int>, x, _1)(1); // cannot convert parameter 1
// from 'void (*)(T) const'
// to 'void (&)(int)'
}
Версия Boost 1.39.0. Если заменить Boost.Lambda на Boost.Bind, компилирует без ошибок и предупреждений, а программа при запуске, как и ожидалось, выводит 1.
Чего Лямбде не хватает?
Здравствуйте, Alexander G, Вы писали:
AG>Если вопрос практический, то не хватает boost::mem_fn вокруг первого параметра bind
Да, практический конечно. Спасибо.