2013-08-19 143 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==設爲非成員,則左操作數可以是您的枚舉類型而不是類類型。