В следующем примере:
class Test
{
public:
Test(int _value) { value = _value; };
const bool operator==(int _value) const { return value == _value; };
private:
int value;
};
int main(void)
{
int a;
a == 1;
Test b(1);
b == 1;
return 0;
}
компиляция дает следующее:
$ g++ -Wall -pedantic -o test test.cc
a.cc: In function ‘int main()’:
a.cc:13:7: warning: statement has no effect [-Wunused-value]
a == 1;
^
Это хорошо, так как он предупредил, что я сделал ошибку и опечатка == для =
Но то же самое верно для моего Тестового класса. Как я могу разметить класс или определение оператора ==, чтобы компилятор предупредил меня другим «оператор не имеет никакого эффекта» для строки «b == 1»?