#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
template <class T>
T max(T const& t1, T const& t2) {
return t1 < t2 ? t2 : t1;
}
int main() {
cout << max(1, 2) << endl;
cout << max<double>(1.2, 2) << endl;
string s1 = "hello";
string s2 = "world";
--> cout << max(s1, s1) << endl;
}
В строке со стрелкой он жалуется: «более одного экземпляра шаблона функции« max »соответствует списку аргументов: - шаблон функции» const _Tp & std :: __ 1 :: max (const _Tp & __ a , const _Tp & __ b) "- шаблон функции" T max (const T & t1, const T & t2) "- типы аргументов: (std :: __ 1 :: string, std :: __ 1 :: string)"
Я в замешательстве, так как они оба строковые, и не уверен, с чем еще может соответствовать шаблон.