Какой корпус лучше?

У меня есть список MyClass :

struct MyClass {
     bool is_old_result(int lifetime);
};
std::list<MyClass> results;
int lifetime = 50; // or something else

Какой вариант удаления лучше ( Дизайн и производительность c ++ ):

results.remove_if(
    std::bind2nd(std::mem_fun_ref(&MyClass::is_old_result), lifetime));

или

results.remove_if(boost::bind(&MyClass::is_old_result, _1, lifetime));

или

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));

и почему?

PS Пожалуйста, без лямбда-функции и без C ++ 0x.

7
задан Alexey Malistov 14 December 2010 в 14:39
поделиться