2013-08-19 139 views
2

我使用GTEST比较对象

EXPECT_EQ(expected, actual) 

问题,我有一种情况,当预计是枚举和实际是某个对象。

这个对象有超载的==操作符与此枚举,但问题是执行 if (expected == actual)而不是if (actual == expected),所以试图用枚举作为LHS是错误的,是有办法“覆盖”呢?我试图做一些东西与specilized模板, ,但没有奏效。

回答

2

你可以定义对称比较作为非成员函数:

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

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