fork download
  1. #include <iostream>
  2. #include <functional>
  3. #include <memory>
  4.  
  5. struct Test{
  6. int a;
  7. void func(int i){
  8. std::cout << "Quark!" << i + a << std::endl;
  9. }
  10.  
  11. Test(int v) : a(v){
  12. }
  13. };
  14.  
  15. int main() {
  16. Test t = 10;
  17. auto ptr = &t;
  18. auto unip = std::unique_ptr<Test>(new Test(100));
  19.  
  20. auto func = std::mem_fn(&Test::func);
  21. func(t,1);
  22. func(ptr,2);
  23. func(unip,3);
  24.  
  25. auto a = std::mem_fn(&Test::a);
  26. a(t) = 10;
  27. a(ptr) = 20;
  28. a(unip) = 30;
  29.  
  30. func(t,1);
  31. func(ptr,2);
  32. func(unip,3);
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
Quark!11
Quark!12
Quark!103
Quark!21
Quark!22
Quark!33