boost::bind и перегруженные функции
От: silart  
Дата: 27.07.11 05:05
Оценка:
Добрый день!
Работаю с boost::bind уже давно, но раньше с таким не сталкивался.

Допустим есть некий класс Writer, он имеет пока одну функцию write:

void write(const Point& point);


В клиенте этого класса есть такой код:

vector<Point> points_in;
...
    Writer writer(buffer, caption, frequency, size);
    points_in = helpers::make_randomPoints(size, count);

     for_each(points_in.begin(), points_in.end(), 
         boost::bind(&Writer::write, &writer, _1) );


Этот код прекрасно собирается и работает.
Но вот возникла необходимость добавить в класс Writer еще одну функцию write:

        void write(const Point& point);
        void write(const std::vector<Point>& points);


И вышеприведенный код перестает собираться, компилятор выдает кучу ошибок.
Пробовал в новую версию функции write добавить еще параметр, это помогает.

Очевидно, что компилятор не может правильно определить параметры шаблонной функции bind и их нужно задать явно.
Помогите пожалуйста это сделать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.