<分区>
是否可以定义一个只在本地使用的 lambda 函数,即在当前 block (函数/方法)中?考虑某些代码将被执行多次(因此将其放入函数中是合乎逻辑的)但永远不会在 block 外使用的情况。
void foo() {
auto bar = []() {
// some code applicable only inside foo()
};
bar();
bar();
bar();
}
与将 bar()
声明为普通函数相比,这种方法的优点和缺点是什么?