== 演算子をオーバーロードして、2 つのオブジェクトを比較しようとしています。何らかの理由で、オーバーロードされたハンドラーが呼び出されることはありません。
class gxCallback
{
public:
virtual bool operator==(const gxCallback &aOther) const
{
// This is never called
return true;
}
};
typedef std::vector < gxCallback* > CallbackList;
void gxObservable::Fire( gxCallback *aCallback )
{
CallbackList::iterator iCallback;
for ( iCallback = mCallbacks.begin(); iCallback != mCallbacks.end(); ++iCallback )
{
if ( aCallback == *iCallback ) // The comparison is never made via the overloaded ==
{
// Do something
}
}
}