下面的代码打印了 0,但我希望看到 1。我的结论是 lambda 函数不是通过实际将捕获的参数传递给函数来调用的,这样更直观。我是对的还是我错过了什么?
#include <iostream>
int main(int argc, char **argv){
int value = 0;
auto incr_value = [&value]() { value++; };
auto print_value = [ value]() { std::cout << value << std::endl; };
incr_value();
print_value();
return 0;
}