fork download
  1. #include <string.h>
  2.  
  3. template <typename TYPE>
  4. TYPE& Max(TYPE& a, TYPE& b)
  5. {
  6. return (a > b ? a : b);
  7. }
  8.  
  9. template < >
  10. char*& Max<char*&>(char*& a, char*& b)
  11. {
  12. return (strcmp(a, b) > 0) ? a : b;
  13. }
  14.  
  15. template < >
  16. const char*& Max<const char*>(const char*& a, const char*& b)
  17. {
  18. return (strcmp(a, b) > 0) ? a : b;
  19. }
  20.  
  21. int main()
  22. {
  23. float a = 3.14;
  24. float b = 2.718;
  25. float c = Max(a, b);
  26.  
  27. char *ca = "abc";
  28. char *cb = "def";
  29. char *cmp = Max(ca, cb); // error (E2015)
  30. }
  31.  
Success #stdin #stdout 0s 3336KB
stdin
Standard input is empty
stdout
Standard output is empty