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