在给定代码中获取错误(标识符未定义)

时间:2016-04-23 02:10:58

标签: c++

我在以下代码的第一个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 equal\n";
else
    cout << "Integers:  " << i1 << " and " << i1 << " are \"Not\" equal\n";

if (isEqualTo(i3, i4))
    cout << "Integers:  " << i3 << " and " << i4 << " are equal\n";
else
    cout << "Integers:  " << i3 << " and " << i4 << " are \"Not\" equal\n";'

有人可以告诉我我做错了什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

TF: (800) 369-3212

P: (214) 331-4381

F: (214) 339-9840

这声明了一些名为 template <typename T> T isEqualTo<bool>(T arg1, T arg2) 的现有模板的特化。不幸的是,您尚未定义此模板。

这是您的编译器的错误消息,逐字。您的isEqualTo模板未定义。

在尝试专门化之前,您必须先定义模板。