fork(1) download
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. namespace my
  5. {
  6. const char* max(const char* lhs, const char* rhs)
  7. {
  8. return (strcmp(lhs, rhs) > 0) ? lhs : rhs;
  9. }
  10.  
  11. template <typename T, typename... Args>
  12. T const& max(T const& lhs, Args... args);
  13.  
  14. template<typename T>
  15. T const& max (T const& a, T const& b)
  16. {
  17. return a < b ? b : a;
  18. }
  19.  
  20. template<typename T, typename... Args>
  21. T const& max(T const& lhs, Args... args)
  22. {
  23. return max(lhs, max(args...));
  24. }
  25.  
  26. template<typename T, typename... Args>
  27. const T* max(const T* lhs, Args... args)
  28. {
  29. return max(lhs, max(args...));
  30. }
  31.  
  32. }
  33.  
  34. int main()
  35. {
  36. int n = my::max(7, 42, 68, 8, 100);
  37. const char *s = my::max("aardvark", "apple", "violet");
  38. std::cout << s << ',' << n << std::endl;
  39. return 0;
  40. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
violet,100