Дорогие все, я хотел бы вызвать функцию-член (которая ожидает ссылку) для каждого объекта (скажем) вектора, который является членом того же класса, как показано в следующем коде:
#include <functional>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
struct Stuff {
double x;
};
class Test {
public:
void f1(Stuff & thing);
void f2(void);
vector<Stuff> things;
};
void Test::f1(Stuff & thing) {
; // do nothing
}
void Test::f2(void) {
for_each(things.begin(), things.end(), f1);
}
int main(void)
{
return 0;
}
Этот код дает мне ошибку компилятора, связанную с неразрешенной перегруженной функцией типа . Я пробовал также с bind, но кажется, что реквизиты ссылок в f1 - это одна проблема. Я знаю, что упускаю что-то важное здесь, поэтому я пользуюсь этой возможностью, чтобы решить мою проблему и учиться. На данный момент я не могу установить boost, но я хотел бы знать также, полезно ли boost для решения этой проблемы. Заранее спасибо.