次の方法で宣言されたクラスがあります。
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass : public MyOtherClass
{
public:
MyClass();
int a() const{ return _a; };
int b() const{ return _b; };
private:
int _a;
int _b;
};
inline bool operator==( const MyClass& lhs, const MyClass& rhs )
{
return (lhs.a() == rhs.a()) && (lhs.b() == rhs.b());
}
#endif
私の問題は、オーバーロードされたブレークポイントに設定されているブレークポイントがoperator==
ヒットしないことです。Visual Studio では、実行がこの関数に決して到達しないことを教えてくれます。比較演算子をオーバーロードするためにこの経験則に従いましたが、それらを非メンバーにすること以外は何も言及していないため、演算子のオーバーロードまたはインライン関数で何かを見逃したかどうかはわかりません。
ブレークポイントがヒットしない理由を誰か教えてもらえますか?