Большинство (но на самом деле я знаю только небольшое число, поэтому не будем разборчивы в этом вопросе) языки высокого уровня поддерживают несколько различных операторов присваивания.
a += 5; // increment a and assign result beack to a.
Но ни один из них (на который я смотрел (опять-таки небольшое число)), похоже, не поддерживает оператор && =.
Причина, по которой я спрашиваю, недавно видела это:
// simplified.
bool x = false;
x = x && testA(); // perform test A/B/C/D stop on first failure.
x = x && testB();
x = x && testC();
x = x && testD();
И мне было интересно, почему мы не могли использовать:
x &&= testA(); // perform test A/B/C/D stop on first failure.
x &&= testB();
x &&= testC();
x &&= testD();
Причина в том, что && = не поддерживается в C / C ++, что заставило нас задуматься, почему.
Есть ли логическая (без каламбура) причина, по которой язык поддерживает все другие основные операторы с формой присваивания, но не && = или || =
У меня есть смутные воспоминания об аргументах против них, но поиск в Google и SO затруднителен, когда ваш поисковый запрос - && = и в результате я ничего не нашел.