Лямбда-захват С++ 11 по значению захвата в точке объявления

Код ниже выводит 0, но я ожидаю увидеть 1. Мой вывод состоит в том, что лямбда-функции вызываются не путем фактической передачи захваченных параметров функциям, что более интуитивно понятно. Я прав или я что-то упускаю?

#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;
}
31
задан perreal 22 July 2012 в 10:22
поделиться