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