Это уже существующий код, который отлично работает.
bool operator==(CMyClass X) {return m_Data==X.m_Data;}
if(a == b){...} //a and b are both CMyClass objects
Но теперь у меня есть код:
if(x.get() == y.get()){...} // get() returns CMyClass&
Я уже изменил его, чтобы получить константную ссылку
bool operator==(const CMyClass &X) {return m_Data==X.m_Data;}
И я все еще получаю ошибку компиляции:
ошибка C2678: бинарный '==': не найден оператор, который принимает левый операнд типа 'const CMyClass' (или тамнедопустимое преобразование)
Нужна ли мне простая поправка к существующему оператору или добавить новую версию с двумя аргументами?Должны ли операторы равенства не принимать параметры const ref как лучшую практику?