文字列と命令のベクトルという 2 つのものを持つ、Something というクラスがあります。そのクラスで、operator== を定義したいと思います。ただし、コンパイルしようとするとエラーが発生します。
error: no match for ‘operator==’ in ‘* __first1 == * __first2’
これは、Something で == を使用して 2 つのベクトルを比較している行で発生しました (ベクトルには便利に定義されているので、それを使用したいと思います)。
指示は次のとおりです。
struct instruction
{
int instr;
int line;
bool operator==(const instruction& rhs)
{
return (instr == rhs.instr) && (line == rhs.line);
}
};
私は役に立たない解決策を探しました。STL からのベクトルは、これらの要素を比較するときに、構造体に定義した operator== を認識していないようです。