Залез к
avva, наткнулся на
смешное. Я иногда встречал формулы типа
if (results > 0) {
return true;
} else {
return false;
}
И каждый раз я терял несколько секунд на "...почему этот ^@$%*@ эээ... ну, допустим, программист, - не написал просто "return results > 0"? Или, скажем, вот
так? Может, я не заметил, что именно он проверяет? Ладно, погоди, давай, не торопясь, перечитаем. ... ага... ага... нет, все верно. Он реально написал четыре лишних строчки, чтобы сконвертировать bool в bool..."
Хорошо еще, он не пишет "if (bool(results > 0) == true) { return bool(true); }".
Мог бы.
То же самое о нотации "if (p != NULL)" вместо "if (p)". Это все равно, что в русском тексте писать "приветствую вас через традиционное пожелание здоровья" вместо "здравствуйте", с объяснением, что так понятнее, что имеется в виду. Вторая форма, - это стандартная идиома, причем одна из тех, которые выучиваются на втором уроке "введения в C". Kроме того, она более generic, чем первая. Первую форму можно использовать разве что для общей ритмичности слога, скажем:
if (p == nullptr) { ... }
else if (p == p1) { ... }
else if (p == p2) { ... }
Я не думаю, что он с этими идиомами не знаком. Однако, я уверен, что он убежден в исключительности этих своих познаний.