我刚刚发现自己正在创建一个类
template <typename T> struct invoker {
void operator()(T& it) const {it();}
};
所以我可以将 an 传递invoker<foo>
给想要invoker<foo>::operator()(foo&)
用不同foo
实例重复调用它的东西(它不在我的控制之下),以让它将这些调用转发给foo
'sfoo::operator()()
方法。
我知道它只有几行,但这似乎是 STL 的函数或boost::bind
某种方式可能已经提供的那种东西。除了我看不到诀窍,如果有的话。(我敢肯定我不是第一个使用这种东西的人;它有名字吗?)