我正在学习复数 C++ 课程,其中包含以下代码:
#include <iostream>
template <class T>
T max(T& t1, T& t2)
{
return t1 < t2 ? t2 : t1;
}
int main()
{
std::cout << "Max of 33 and 44 is " << max(33, 44) << std::endl;
return 0;
}
我输入了这段代码,但与课程代码不同,我收到一条错误消息:
C2664: 'max' : cannot convert parameter 1 from 'int' to 'int &'
课程中的代码是用 Visual Studio Express 2010 编写的,而我的代码是用 Visual Studio Ultimate 2010 编写的。
编辑
感谢大家(甚至是 Kate Gregory 本人)提供答案并澄清一切。