c++ - 只在本地使用 lambda 可以吗?
问题描述
定义一个仅在本地使用的 lambda 函数是否可以,即在当前块(函数/方法)中?考虑某些代码将被执行多次(因此将其放入函数中是合乎逻辑的)但它永远不会在块外使用的情况。
void foo() {
auto bar = []() {
// some code applicable only inside foo()
};
bar();
bar();
bar();
}
bar()
与声明为普通函数相比,这种方法的优点和缺点是什么?
解决方案
如果这样做的选项可用,那么可以,请将 lambda 本地化bar
到特定函数。
在 C++ 中,我们总是尽量让对象保持本地化。(使代码更容易理解,简化文档,便于重构,&c. &c..)
推荐阅读
- python - 如何在 Django 功能测试中触发空值验证?
- node.js - oracledb npm 包安装失败
- woocommerce - Woocommerce 订单管理/编辑页面 - 如何在订单更改时通过 JS 触发总计重新计算?
- mysql - MySQL PDO - 用连接分组的表的最新行
- php - 用于循环状态 [0] 的嵌套 Json php 问题
- swift - 使用函数类型的变量创建选择器
- php - PHP get_headers() result distinguish
- postgresql - 一次聚合 k 行的所有组合
- powershell - 如何按使用 powershell 修改的日期对不同目录中的文件进行排序?
- r - 在 R 中读取 dat 文件