#include <iostream> #include <string> #include <cstring> using namespace std; template <typename T> inline T const& max(T const& a, T const& b) { return a > b ? a : b; } char const* max(char const* str1, char const* str2) { return strcmp(str1, str2) > 0 ? str1 : str2; } int main(int argc, char *argv[]) { cout << ::max("hello", "world") << endl; cout << ::max(string("hello"), string("world")) << endl; return 0; }