我正在使用谷歌测试功能EXPECT_EQ来运行一个函数的测试用例。函数“find”返回一个列表并接收要查找的名称字符串。这是我的测试功能:
#include <stdio.h>
int main()
{
int a[3] = { 0 };
for (int i = 0; i < 3; i++)
{
printf("%llu %u %p\n", a + i, a + i, a + i);
}
return 0;
}
但是当我试图“制造”时,它给了我一个很长的错误 /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/algorithm:665:71:错误:无效 操作符到二进制表达式('const Man'和'const Man') bool operator()(const _T1&amp; __x,const _T1&amp; __y)const {return __x == __y;}
我没有正确使用EXPECT_EQ吗?如何解决此错误?
答案 0 :(得分:1)
EXPECT_EQ
要求为传递的项目定义相等运算符。 std::list
已经有这样的运算符为每个存储的项调用相等运算符。因此,您似乎需要定义operator ==
来比较Man
类的两个实例是否相等:
bool operator ==(Man const & left, Man const & right)