我使用
时遇到问题EXPECT_EQ(expected, actual)
我有一种情况,预期是枚举,实际是某个对象。
此对象使用此枚举对operator ==进行重载,但是它执行的问题
if (expected == actual)
而不是if (actual == expected)
,所以尝试使用枚举作为lhs是错误的,有没有办法“覆盖”这个?我尝试用特定模板做一些事情,
但是没有用。
答案 0 :(得分:2)
您可以将对称比较定义为非成员函数:
bool operator==(my_enum e, my_object const & o) {return o == e;}
答案 1 :(得分:0)
如果你使operator==
成为非成员,左手操作数可以是你的枚举类型而不是类类型。