fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. typedef void (*func_type)();
  5.  
  6. void func1() { std::cout << "func1\n"; }
  7. void func2() { std::cout << "func2\n"; }
  8. void func3() { std::cout << "func3\n"; }
  9. void func4() { std::cout << "func4\n"; }
  10. void func5() { std::cout << "func5\n"; }
  11.  
  12.  
  13. template <typename iter_type>
  14. void execute(iter_type beg, const iter_type& end)
  15. {
  16. while (beg != end)
  17. (*beg++)();
  18. }
  19.  
  20. void with_new_and_array()
  21. {
  22. func_type* funcs = new func_type[5];
  23. funcs[0] = func1;
  24. funcs[1] = func2;
  25. funcs[2] = func3;
  26. funcs[3] = func4;
  27. funcs[4] = func5;
  28.  
  29. execute(funcs, funcs + 5);
  30. delete [] funcs;
  31. }
  32.  
  33. void with_vector()
  34. {
  35. std::vector<func_type> funcs = { func1, func2, func3, func4, func5 };
  36. execute(funcs.begin(), funcs.end());
  37. }
  38.  
  39.  
  40. int main()
  41. {
  42. with_new_and_array();
  43. with_vector();
  44. }
  45.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
func1
func2
func3
func4
func5
func1
func2
func3
func4
func5