La "solución" a continuación se compila pero no es lo que quiero. Me gustaría pasar la función de miembro put
a for_each
y no a *this
. El uso de boost es NOT una opción. ¿Se puede resolver esto dentro de C++ 03?Pasar una función miembro a for_each en C++ 03 (no boost, no C++ 11)
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
class Wheel { };
class Car {
public:
void process(const vector<Wheel>& wheel) {
for_each(wheel.begin(), wheel.end(), *this);
}
void operator()(const Wheel& w) { put(w); }
private:
void put(const Wheel& w) { }
};
int main() {
vector<Wheel> w(4);
Car c;
c.process(w);
return 0;
}
Podría explicar por qué exactamente? – EmeryBerger