fork(7) download
  1. #include <iostream>
  2. #include <functional>
  3. using namespace std;
  4.  
  5. template<class F>
  6. void register_handler( F f ) // any callable object
  7. {
  8. if(std::is_same<int, typename F::argument_type>::value)
  9. { cout << "int\n";}
  10. if(std::is_same<double, typename F::argument_type>::value)
  11. { cout << "double\n";}
  12.  
  13. f(5);
  14. f(5.0);
  15. }
  16.  
  17. void fint(int v)
  18. {
  19. cout << "fint\n";
  20. }
  21.  
  22. void fdbl(double v)
  23. {
  24. cout << "fdbl\n";
  25. }
  26.  
  27. int main() {
  28.  
  29. register_handler(std::function<void(int)>(fint));
  30. register_handler(std::function<void(double)>(fdbl));
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
int
fint
fint
double
fdbl
fdbl