Re: [Boost.Lambda] Связывание функций-членов
От: Alexander G Украина  
Дата: 15.08.09 15:21
Оценка: 6 (1)
Здравствуйте, igna, Вы писали:

I>Чего Лямбде не хватает?


Если вопрос практический, то не хватает boost::mem_fn вокруг первого параметра bind
Русский военный корабль идёт ко дну!
[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.

Чего Лямбде не хватает?
Re[2]: [Boost.Lambda] Связывание функций-членов
От: igna Россия  
Дата: 15.08.09 16:32
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>Если вопрос практический, то не хватает boost::mem_fn вокруг первого параметра bind


Да, практический конечно. Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.