我在以下代码的第一个if语句的表达式中收到错误(标识符"isEqualTo"未定义)。
'template <typename T>
T isEqualTo<bool>(T arg1, T arg2)
{
if (arg1 == arg2)
return true;
else
return false;
}
int main()
{
int i1 = 1, i2 = -1, i3 = 2, i4 = 4;
cout << "*** Integers Tests ***n";
if (isEqualTo(i1, i1))
cout << "Integers: " << i1 << " and " << i1 << " are equaln";
else
cout << "Integers: " << i1 << " and " << i1 << " are "Not" equaln";
if (isEqualTo(i3, i4))
cout << "Integers: " << i3 << " and " << i4 << " are equaln";
else
cout << "Integers: " << i3 << " and " << i4 << " are "Not" equaln";'
有人可以告诉我我做错了什么以及如何解决它吗?
template <typename T>
T isEqualTo<bool>(T arg1, T arg2)
这声明了名为 isEqualTo
的现有模板的专用化。很遗憾,您尚未定义此模板。
这是编译器的错误消息,逐字显示。未定义isEqualTo
模板。
在尝试专用化模板之前,您必须定义模板。