в perl такие конструкции очень распространены, например
my $var = do_something() or die;
за счет того, что оператор or имеет более низкий приоритет, чем присваивание, выглядит очень естественно и локанично :)
Оператор || обычно используют иначе:
my $var = $a || $b;
его приоритет выше присваивания
А дело далеко не в наглядности, это не превалирующий фактор. Нормальный специалист такие конструкици разбирает легко и просто. Мне, например, конструкция
if (f == NULL)
режет глаза, намного привычнее и понятнее
if (!f)
и таких нюансов много. Кто начинал давно, того выкрутасами не удивишь. А на современных недопроггеров жалко смотреть. Всё им не так, всё им разжуй, только и слышно, что везде неправильно, везде убого, а сами даже двух строчек банальных разобрать не могут.
я ошибаюсь, или это называется неполной компиляцией выражений? Если так, то всё время считал, что она есть только в интерпретируемых языках. В том же PHP она используется очень часто, хотя и является временами причиной трудноотловимых багов.
Да когда времени или ума не хватало использовать smart\checked указатели(или когда их еще даже не изобрели) «smth or die» это все что спасало программу от креша)
extern void *p; //defined somewhere else
if (p && blah-blah...)
Об операторах