Большинство языков высокого уровня (но я знаю лишь небольшое число, так что давайте не будем привередничать) поддерживают несколько различных операторов присваивания.
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 затруднен, если ваш поисковый запрос - '&& =', и в результате я ничего не нашел.