#include <iostream>
using namespace std;
template <typename T>
inline T* const& compare(T* const& a, T* const& b)
{
return *a < *b ? b : a;
}
int* const& compare(int* const & a, int* const &b)
{
std::cout << "int* const& compare(int* const & a, int* const &b)" << std::endl;
return *a < *b ? b : a;
}
int main() {
int i = 5;
int j = 10;
std::cout << *compare(&i, &j) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmlubGluZSBUKiBjb25zdCYgY29tcGFyZShUKiBjb25zdCYgYSwgVCogY29uc3QmIGIpCnsKICAgIHJldHVybiAgKmEgPCAqYiAgPyAgYiA6IGE7Cn0KCmludCogY29uc3QmIGNvbXBhcmUoaW50KiBjb25zdCAmIGEsIGludCogY29uc3QgJmIpCnsKCXN0ZDo6Y291dCA8PCAiaW50KiBjb25zdCYgY29tcGFyZShpbnQqIGNvbnN0ICYgYSwgaW50KiBjb25zdCAmYikiIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAqYSA8ICpiID8gYiA6IGE7Cn0KCmludCBtYWluKCkgewoJCglpbnQgaSA9IDU7CglpbnQgaiA9IDEwOwoJCglzdGQ6OmNvdXQgPDwgKmNvbXBhcmUoJmksICZqKSA8PCBzdGQ6OmVuZGw7CgkKCXJldHVybiAwOwp9