在 C# 中我们可以说:
Action act = ()=> {/*stuff*/};
act += ()=> {/*another stuff*/}`
然后调用act()
。
我想知道如何在 C++ 中做这样的事情(现在使用 lambda 它将非常有用,如果可能的话不使用 Boost/Qt 信号)?
最佳答案
也许用 std::function
s:
std::vector<std::function<void()>> act;
act.emplace_back([] { /* stuff */ });
act.emplace_back([] { /* more stuff */ });
调用:
for (auto & f : act) { f(); }
关于c# - C# Action += function 的 C++ 方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451554/