https://wikidocs.net/408
#include
template <typename T, typename U>
T max(T const &a, U const &b)
{
return a < b ? b: a;
}
int main()
{
std::cout << max<float,int>(100.1,100) << std::endl;
std::cout << max<int,float>(100,20.f) << std::endl;
std::cout << max<double,int>(100.1,20) << std::endl;
}