template<typename T, typename U>
auto max(T x, U y) -> decltype(x > y ? x : y)
{ return x > y ? x : y; }
#include <iostream>
int main() {
char x = 15;
unsigned long long y = 4;
auto result = max(x, y);
::std::cout << result << "\n";
}
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gIAphdXRvIG1heChUIHgsIFUgeSkgLT4gZGVjbHR5cGUoeCA+IHkgPyB4IDogeSkgIAp7IHJldHVybiB4ID4geSA/IHggOiB5OyB9CgojaW5jbHVkZSA8aW9zdHJlYW0+CmludCBtYWluKCkgewoJY2hhciB4ID0gMTU7Cgl1bnNpZ25lZCBsb25nIGxvbmcgeSA9IDQ7CglhdXRvIHJlc3VsdCA9IG1heCh4LCB5KTsKCTo6c3RkOjpjb3V0IDw8IHJlc3VsdCA8PCAiXG4iOwp9