Я только что создал класс
template <typename T> struct invoker {
void operator()(T& it) const {it();}
};
, чтобы я мог передать invoker
чему-то (который не находится под моим контролем), который хочет неоднократно вызывать invoker
с разными экземплярами foo
, чтобы заставить его пересылать эти вызовы метода foo
's foo::operator()()
.
Я знаю, что это всего несколько строк, но это похоже на то, что вероятно уже предусмотрено функционалом STL, или boost::bind
каким-то образом. Вот только я не вижу подвоха, если он есть. (Я уверен, что я не первый, кто использует что-то очень нравится, у него есть имя?)