我正在首次使用lambda表达式,并且遇到了一个无法解决的问题。
我收到了多个错误提示:
<source>: 在lambda函数中:
<source>:7:19: 错误:'x'未被捕获
7 | int sum = x + y;
| ^
<source>:6:20: 注释:lambda没有捕获默认值
6 | auto lambda = []() {
| ^
<source>:4:9: 注释:'int x'在此声明
4 | int x = 5, y = 10;
| ^
<source>:7:23: 错误:'y'未被捕获
7 | int sum = x + y;
| ^
<source>:6:20: 注释:lambda没有捕获默认值
6 | auto lambda = []() {
| ^
<source>:4:16: 注释:'int y'在此声明
4 | int x = 5, y = 10;
|
我的代码如下:
#include <iostream>
int main() {
int x = 5, y = 10;
auto lambda = []() {
int sum = x + y;
std::cout << "Sum of x and y is: " << sum << std::endl;
};
lambda();
}
编译器提示变量已经声明,但为什么在lambda表达式中找不到它们?