Если я попытаюсь скомпилировать:
class Outer
{
class Inner
{
int t;
};
public:
Inner inner_;
bool operator ==(Outer rightSide);
};
bool Outer::operator ==(Outer rightSide)
{
if (inner_ == rightSide.inner_)
return true;
return false;
}
Я получаю сообщение об ошибке:
/home/martin/Projects/Experimentation/Various-build-desktop/../Various/main.cpp:18:
error: no match for ‘operator==’ in ‘((Outer*)this)->Outer::inner_ ==
rightSide.Outer::inner_’
Пожалуйста, просто я что-то делаю неправильно или это свойство C ++
EDIT:
О, я никогда не понимал, что оператор == никогда не синтезируется, я был настолько уверен, что он синтезирован, что я не стал проверять.
Спасибо Парапура Раджкумар!