fork download
  1. #include <iostream>
  2. #include <functional>
  3.  
  4. struct X {
  5. X(int arg = 1) :
  6. someVar(arg)
  7. {
  8. std::cout << "X(" << arg << ")" << std::endl;
  9. }
  10.  
  11. ~X()
  12. {
  13. std::cout << "~X(" << someVar << ")" << std::endl;
  14. }
  15.  
  16. int someVar;
  17. };
  18.  
  19. std::function<void()> get_lambda(int number)
  20. {
  21. X x(number);
  22. return [&x]() {
  23. std::cout << "lambda from get_lambda: x.someVar == " << x.someVar << std::endl;
  24. };
  25. }
  26.  
  27. int main()
  28. {
  29. auto lambda = get_lambda(42);
  30. lambda();
  31.  
  32. return 0;
  33. }
  34.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
X(42)
~X(42)
lambda from get_lambda: x.someVar == 42