Я заново изобретаю велосипед с этим тривиальным классом переадресации вызова метода?

Я только что создал класс

template <typename T> struct invoker {
  void operator()(T& it) const {it();}
};

, чтобы я мог передать invokerчему-то (который не находится под моим контролем), который хочет неоднократно вызывать invoker::operator()(foo&)с разными экземплярами foo, чтобы заставить его пересылать эти вызовы метода foo's foo::operator()().

Я знаю, что это всего несколько строк, но это похоже на то, что вероятно уже предусмотрено функционалом STL, или boost::bindкаким-то образом. Вот только я не вижу подвоха, если он есть. (Я уверен, что я не первый, кто использует что-то очень нравится, у него есть имя?)

5
задан timday 15 May 2012 в 23:41
поделиться