c++ - 只在本地使用 lambda 可以吗?

标签 c++ function lambda code-cleanup

<分区>

是否可以定义一个只在本地使用的 lambda 函数,即在当前 block (函数/方法)中?考虑某些代码将被执行多次(因此将其放入函数中是合乎逻辑的)但永远不会在 block 外使用的情况。

void foo() {
    auto bar = []() {
        // some code applicable only inside foo()
    };

    bar();
    bar();
    bar();
}

与将 bar() 声明为普通函数相比,这种方法的优点和缺点是什么?

最佳答案

如果这样做的选项可用,那么是的,请将 lambda bar 本地化到特定函数。

在 C++ 中,我们总是尽量将对象保持在本地。 (使代码更易于理解,简化文档,促进重构,&c. &c..)

关于c++ - 只在本地使用 lambda 可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50717112/

相关文章:

c# - 使用 LINQ 分离列表

java - java Lambda 与匿名类之间的执行时间差异很大

c++ - 异常表达式创建的异常对象的类型

c++ - 使用 C++ 中的预定义变量发出 cURL GET 请求

javascript - jQuery 中使用 bind() 和each() 分配事件处理程序的区别?

javascript - 表单提交前调用函数

c++ - 我该如何阅读以下声明?

c++ - 用 C++ 创建高性能网络服务器

c - 如何将函数作为参数放入 C 中?

c++ - C++11 lambda 可以捕获文件范围变量吗?