tengo una lista de MyClass
:¿Qué caso es mejor?
struct MyClass {
bool is_old_result(int lifetime);
};
std::list<MyClass> results;
int lifetime = 50; // or something else
Qué caso de la eliminación es mejor (C++ diseño y perfomance de):
results.remove_if(
std::bind2nd(std::mem_fun_ref(&MyClass::is_old_result), lifetime));
o
results.remove_if(boost::bind(&MyClass::is_old_result, _1, lifetime));
o
struct RemoveFunctor {
RemoveFunctor (int lifetime) : lifetime(lifetime) {}
bool operator()(const MyClass & m) { return m.is_old_result(lifetime); }
private:
int lifetime;
};
results.remove_if(RemoveFunctor(lifetime));
y por qué?
P.S. Por favor, no hay función lambda ni C++ 0x.
Estoy completamente de acuerdo. – ltjax
Estoy de acuerdo, la sintaxis de enlace es la más fácil de leer. Si el rendimiento es una preocupación secundaria, dirígete aquí. –
También estoy de acuerdo, y agregaré que el rendimiento debería ser una preocupación secundaria a menos que/hasta que hayas perfilado y determinado que esta declaración es un cuello de botella de rendimiento. –