fork download
  1. #include <vector>
  2. #include <iostream>
  3. #include <string>
  4. #include <memory>
  5. #include <math.h>
  6. #include <list>
  7. #include <thread>
  8. #include <atomic>
  9. #include <functional>
  10.  
  11. using namespace std;
  12.  
  13.  
  14. class MClass
  15. {
  16. public:
  17. std::function<void(void)> func_ptr;
  18.  
  19. void setFuncPtr(const std::function<void(void)>& ptr)
  20. {
  21. func_ptr = ptr;
  22. }
  23.  
  24. void callFuncPtr()
  25. {
  26. func_ptr();
  27. }
  28. };
  29.  
  30. void globalFunction() {
  31. std::cout << " do globalFunction " << std::endl;
  32. }
  33.  
  34. struct Test
  35. {
  36. void print() { cout << "Test::print" << endl; }
  37. };
  38.  
  39.  
  40. int main(int argc, int argv[])
  41. {
  42. MClass m;
  43. m.setFuncPtr(globalFunction);
  44. m.callFuncPtr();
  45.  
  46. m.setFuncPtr([](){ std::cout << " do something " << std::endl; });
  47. m.callFuncPtr();
  48.  
  49. Test t;
  50. m.setFuncPtr(std::bind(&Test::print, t));
  51. m.callFuncPtr();
  52. return(0);
  53. }
Success #stdin #stdout 0s 2988KB
stdin
Standard input is empty
stdout
 do globalFunction 
 do something 
Test::print