c++ - 如何在 C++ 中使用模板函子实现回调
问题描述
您能否解释一下如何在 C++ 中使用模板函子实现回调函数。
我已阅读 Rich Hickey 关于此主题的以下文章,但不明白如何在我的应用程序中使用它。
http://www.tutok.sk/fastgl/callback.html
我对函子和模板有基本的了解,并且已经在我的应用程序中使用过它。
解决方案
类似于以下内容:
void hello()
{
printf("hello\n");
}
template <typename CB>
void func_with_cb(CB cb, int i)
{
cb(i);
}
int main()
{
func_with_cb([](int i)
{
printf("%d\n", i);
hello();
}, 5);
}
我们在函数中使用模板来允许任意回调,而无需事先知道类型名(编译器仍会检查一切是否正常),然后使用 lambda 传递回调。hello
我们还可以在匿名 lambda 函数中调用命名函数(例如)
推荐阅读
- r - 如何使用summary 和group_by?
- powershell - Export-csv 返回 1 个实例而不是整个结果
- javascript - 删除“编辑”文本单击“删除”文本
- amazon-web-services - AWS CLI:如何设置新复制实例的 VPC
- sql-server - 以整数值作为日期参数的 T-SQL 日期函数
- protocol-buffers - 多个原型中的 FileOptions 扩展
- ajax - 如何在 laravel 中使用 ajax 使用搜索栏?
- javascript - 简单立方体场景中的颗粒纹理
- google-apps-script - 我在 Regexp 获取表达式时遇到错误
- javascript - React - 单击第三个组件时更新多个组件的状态