[英]C++ lambda capture result
例如我有下一个代码:
int func()
{
int i = 0;
int j = 0;
auto lambda{[&](){ return i; }};
return lambda();
}
j
也会被引用捕获还是 lambda 仅捕获它使用的对象?
不, j
不会被捕获。
从https://en.cppreference.com/w/cpp/language/lambda :
捕获是零个或多个捕获的逗号分隔列表,可选择以捕获默认值开头。 唯一的捕获默认值是
- &(通过引用隐式捕获使用的自动变量)和
- =(通过复制隐式捕获使用的自动变量)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.