Проблема в том, что если работает на логических значениях.
stringName == "firstName"
возвращает логическое значение.
"lastName"
является строковым литералом.
||
- это логическое значение или оператор с коротким замыканием, которое принимает логические значения с обеих сторон.
Другими словами, вы хотите изменить определение ||
, что обычно является плохой идеей.
Теоретически, вы можете сделать так, чтобы синтаксический анализатор понял, что вы имеете в виду ... но это очень быстро становится двусмысленным.
if (stringName == firstName || lastName)
Выглядит хорошо, верно? Но что именно фамилия?
Что если я это сделаю?
const bool lastName = false;
Кроме того, &&
является противоположностью ||
, но stringName == firstName && lastName
не является противоположностью вышеуказанной логики и фактически не имеет смысла.