[Boost.Lambda] Связывание функций-членов
От: igna Россия  
Дата: 15.08.09 13:51
Оценка:
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.

Чего Лямбде не хватает?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.