gtest枚举和对象之间的比较
gtest comparison between enum and object
我在使用时遇到问题
EXPECT_EQ(expected, actual)
我有一种情况,预期的是枚举,而实际的是某个对象。
此对象使用此枚举重载了运算符==,但它执行的问题if (expected == actual)
而不是if (actual == expected)
,所以尝试使用枚举作为lhs是错误的,有办法"覆盖"这一点吗?我试着用特定的模板做一些事情,但没有起作用。
您可以将对称比较定义为非成员函数:
bool operator==(my_enum e, my_object const & o) {return o == e;}
如果将operator==
设为非成员,则左侧操作数可以是枚举类型,而不是类类型。
相关文章:
- 禁止指针和整数之间的比较C++
- ISO C++禁止指针和整数 [-fpermissive] [c++] 之间的比较
- 比较它们之间的元素并获取公共值的键
- 零点和布尔值之间的比较
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较
- C++ - 负数和正数之间的比较返回 false
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- C++模板参数之间的比较似乎被忽略了
- 为什么C++容器之间存在比较运算符
- 错误:ISO C++禁止在指针和整数 [-fallowive] 之间进行比较
- 数字之间的比较
- C++ - 比较模板和类之间的数据类型
- 获取字符串大小的各种方法之间的比较
- 比较器的两个实现之间的差异
- 如何修复C++中的"指针和整数之间的比较"错误?
- 不同指针类型之间的无效比较:'type*' 和 'type&(*)()'
- 符号和未签名整数表达式之间的比较,以进行循环误差
- 比较C 中移动和智能指针之间的习惯
- Python,C ,C#和Java中的字符串比较之间的差异
- 与表达式或变量进行比较之间的性能差异