fork(2) download
  1. #include <vector>
  2. #include <iostream>
  3.  
  4. template<typename Delegates, typename Function, typename... Args>
  5. void callOnAll(Delegates delegates, Function f, Args... args) {
  6. for (int i = 0; i < delegates.size(); i++)
  7. f(delegates[i], args...);
  8. }
  9.  
  10. struct Delegate {
  11. int x;
  12. Delegate(int x) : x(x) {}
  13. void doSomething(int foo) {
  14. std::cout << "doSomething(" << foo << ") on Delegate(" << x << ")" << std::endl;
  15. }
  16. };
  17.  
  18. int main()
  19. {
  20. std::vector<Delegate*> delegates;
  21. delegates.push_back(new Delegate(1));
  22. delegates.push_back(new Delegate(2));
  23. delegates.push_back(new Delegate(3));
  24. callOnAll(delegates, std::mem_fun<void,Delegate>(&Delegate::doSomething), 42);
  25. }
Success #stdin #stdout 0s 3020KB
stdin
Standard input is empty
stdout
doSomething(42) on Delegate(1)
doSomething(42) on Delegate(2)
doSomething(42) on Delegate(3)