c# - C# Action += function 的 C++ 方式?

标签 c# c++ c++11 lambda action

在 C# 中我们可以说:

Action act = ()=> {/*stuff*/}; 
act += ()=> {/*another stuff*/}` 

然后调用act()

我想知道如何在 C++ 中做这样的事情(现在使用 lambda 它将非常有用,如果可能的话不使用 Boost/Qt 信号)?

最佳答案

也许用 std::functions:

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/

相关文章:

c++ - Windows C++ DNS 查找

c++ - 尝试使用 Rcpp 编译 c++11 时出现 g++ 错误

c++ - C++返回默认值NullObjectPattern

c++ - 如何在 yocto 上移植 grpc helloworld(CPP) 示例

c++ - 无法推断模板参数 ‘looptype’

c++ - C++ 虚拟调用实现需要澄清

c# - 如果 ASP.NET 5 应用程序在 Ubuntu 上运行,它可以与 MS SQL Server 通信吗?

c# - 如何加密用户的用户名和密码?

c# - 删除 'ext:CalendarPanel' 中的所有事件

c# - 用于一些 flash 的简单动画库