#include <iostream>
/* struct F_notMutable { F(int &var) : var(var) {} int operator()(int j) const { var += j; return var; } int var; }; */ struct F_mutable { F(int &var) : var(var) {} int operator()(int j) { var += j; return var; } int var; }; int main() { int i = 5; //F_notMutable f(i); /* auto f = [=](int j) -> int { i += j; return i; }; */ F_mutable f(i); /* auto f = [=](int j) mutable -> int { i += j; return i; }; */ i = 7; std::cout << "f(42) = " << f(42) << std::endl; } |