我正在构建一个需要访问上下文中大量变量的 lambda 函数。
const double defaultAmount = [&]{
/*ToDo*/
}();
我不想在列表中使用 [=]
,因为我不希望制作大量的值(value)拷贝。
如果我使用 [&]
,我会担心程序稳定性,因为我不希望 lambda 修改捕获集。
我可以通过 const 引用传递吗? [const &]
不起作用。
也许一个好的编译器会优化出值拷贝,所以 [=]
更可取。
最佳答案
您可以显式创建和捕获 const 引用:
int x = 42;
const int& rx = x;
auto l = [&rx]() {
x = 5; // error: 'x' is not captured
rx = 5; // error: assignment of read-only reference 'rx'
};
关于c++ - 通过 lambda 捕获列表中的常量引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31179355/