2

使用に問題があります

EXPECT_EQ(expected, actual)

期待されるのが列挙型で、実際が何らかのオブジェクトであるという状況があります。

このオブジェクトには、この列挙型を使用した operator == のオーバーロードがありますが、問題は実行 if (expected == actual)されずif (actual == expected)、列挙型を lhs として使用しようとするのは間違っています。これを「オーバーライド」する方法はありますか? 特殊なテンプレートでいくつかのことをしようとしましたが、うまくいきませんでした。

4

2 に答える 2

2

対称比較を非メンバー関数として定義できます。

bool operator==(my_enum e, my_object const & o) {return o == e;}
于 2013-08-19T15:56:28.627 に答える
0

operator==非メンバーにする場合、左側のオペランドはクラス型ではなく列挙型にすることができます。

于 2013-08-19T15:55:39.150 に答える