fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. template <class Container, class Function>
  5. struct Invoker {
  6.  
  7. const Container& invoke(const Container &container, Function function)
  8. {
  9. for (auto &value : container) function(value);
  10. }
  11.  
  12. Container& invoke(Container &container, Function function)
  13. {
  14. for (auto &value : container) function(value);
  15. }
  16.  
  17. };
  18.  
  19. int main() {
  20.  
  21. std::vector<int> container {1, 2, 3};
  22. auto fn = [](int val) {
  23. std::cout << val << std::endl;
  24. };
  25.  
  26. Invoker<decltype(container), decltype(fn)>().invoke(container, fn);
  27.  
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
1
2
3