1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <iostream> #include <cstring> template <typename T> inline T const& max (T const& a, T const& b) { std::cout << "max<T> - " << a << ", " << b << "\n"; return a < b ? b : a; } inline char const* max (char const* a, char const* b) { std::cout << "max - " << a << ", " << b << "\n"; return std::strcmp(a,b) < 0 ? b : a; } template <typename T> inline T const& max (T const& a, T const& b, T const& c) { T const& result = max (max(a,b), c); return result; } int main () { const char* s1 = "frederic"; const char* s2 = "anica"; const char* s3 = "lucas"; ::max(s1, s2, s3); } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgVCBjb25zdCYgbWF4IChUIGNvbnN0JiBhLCBUIGNvbnN0JiBiKSAKeyAKICAgIHN0ZDo6Y291dCA8PCAibWF4PFQ+IC0gIiA8PCBhIDw8ICIsICIgPDwgYiA8PCAiXG4iOwogICAgcmV0dXJuIGEgPCBiID8gYiA6IGE7IAp9CgppbmxpbmUgY2hhciBjb25zdCogbWF4IChjaGFyIGNvbnN0KiBhLCBjaGFyIGNvbnN0KiBiKSAKeyAKICAgIHN0ZDo6Y291dCA8PCAibWF4IC0gIiA8PCBhIDw8ICIsICIgPDwgYiA8PCAiXG4iOwogICAgcmV0dXJuIHN0ZDo6c3RyY21wKGEsYikgPCAwID8gYiA6IGE7IAp9IAoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUIGNvbnN0JiBtYXggKFQgY29uc3QmIGEsIFQgY29uc3QmIGIsIFQgY29uc3QmIGMpCnsKICAgIFQgY29uc3QmIHJlc3VsdCA9IG1heCAobWF4KGEsYiksIGMpOwogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4gKCkgCnsgCiAgICBjb25zdCBjaGFyKiBzMSA9ICJmcmVkZXJpYyI7IAogICAgY29uc3QgY2hhciogczIgPSAiYW5pY2EiOyAKICAgIGNvbnN0IGNoYXIqIHMzID0gImx1Y2FzIjsgCgogICAgOjptYXgoczEsIHMyLCBzMyk7Cn0=
-
upload with new input
-
result: Success time: 0s memory: 2724 kB returned value: 0
max - frederic, anica max - frederic, lucas


