fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. template<typename T>
  5. T half(T arg);
  6.  
  7. template<>
  8. int half<int>(int arg)
  9. {
  10. return arg/2;
  11. }
  12.  
  13. template<>
  14. double half<double>(double arg)
  15. {
  16. return arg/2;
  17. }
  18.  
  19. template<>
  20. string half<string>(string arg)
  21. {
  22. return arg.substr(0, arg.length()/2);
  23. }
  24.  
  25. int main()
  26. {
  27. cout << half(2) << endl;
  28. cout << half(0.5) << endl;
  29. cout << half(string("trivial")) << endl;
  30. return 0;
  31. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
1
0.25
tri