fork download
  1. #include <iostream>
  2. #include <functional>
  3.  
  4. class Task {
  5.  
  6. public:
  7. template <typename Func, typename... Args>
  8. Task(Func&& f,Args&&... args) :
  9. func_([=]()
  10. { f(args...); })
  11. {}
  12.  
  13. void execute()
  14. {
  15. func_();
  16. }
  17.  
  18. private:
  19. std::function<void()> func_;
  20.  
  21. };
  22.  
  23. void someFunc(const std::string& name,int count)
  24. {
  25. std::cout << name << " " << count;
  26.  
  27. }
  28. //Example of wanted use:
  29. int main() {
  30.  
  31. int counter = 0;
  32. std::string name("Some name...");
  33.  
  34. Task task(&someFunc,name,counter);
  35. task.execute();
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 4408KB
stdin
Standard input is empty
stdout
Some name... 0