模板1

template<typename T>

inline T const& max(T const& a,T const& b)

max(4, 7);//ok

max(4 , 7.1);//error

解决办法:

1. max(static_cast<double>(4), 7.1);

2.max<double>(4, 7.1);

#include <iostream>

using namespace std;

template<typename T>
inline T const& max(T const& a, T const& b)
{
return a > b ? a : b;
}
int main()
{
cout << ::max(4, 5) << endl;
cout << ::max('a', 'b') << endl;;
cout << ::max(4.1, 5.1) << endl;;
cout << ::max(4, static_cast<int>(5.1)) << endl;;
cout << ::max(static_cast<double>(4), 5.1) << endl;;
cout << ::max<double>(4, 5.1) << endl;;
cout << ::max<int>(4, 5.1) << endl;;
return 0;
}

原文地址:https://www.cnblogs.com/xpylovely/p/12250973.html