gtest枚举和对象之间的比较

gtest comparison between enum and object

本文关键字:比较 之间 对象 枚举 gtest      更新时间:2023-10-16

我在使用时遇到问题

EXPECT_EQ(expected, actual)

我有一种情况,预期的是枚举,而实际的是某个对象。

此对象使用此枚举重载了运算符==,但它执行的问题if (expected == actual)而不是if (actual == expected),所以尝试使用枚举作为lhs是错误的,有办法"覆盖"这一点吗?我试着用特定的模板做一些事情,但没有起作用。

您可以将对称比较定义为非成员函数:

bool operator==(my_enum e, my_object const & o) {return o == e;}

如果将operator==设为非成员,则左侧操作数可以是枚举类型,而不是类类型。