我基本上有以下法典:
typedef std::function<void ()> fnGlobalChangeEvent;
typedef std::vector<fnGlobalChangeEvent> GlobalTriggers;
inline void ExecuteGlobal(fnGlobalChangeEvent ev)
{
ev();
}
GlobalTriggers triggers;
std::for_each(triggers.begin(), triggers.end(), std::bind(&ExecuteGlobal, _1));
在这里,使用赤贫全球感觉是完全多余的,但我找不到正确的辛迪加来放弃这一呼吁。
std::for_each(triggers.begin(), triggers.end(), ExecuteGlobal(_1));
std::for_each(triggers.begin(), triggers.end(), std::bind(_1));
两者都没有汇编。
还有一个更为复杂的案例:
typedef std::function<void (Zot&)> fnChangeEvent;
typedef std::vector<fnChangeEvent> Triggers;
inline void Execute(fnChangeEvent ev, Zot& zot)
{
ev(zot);
}
Triggers triggers;
std::for_each(triggers.begin(), triggers.end(), std::bind(&Execute, _1, zot));
如果没有帮助者在这些情况下发挥职能是可能的?