Вот вполне себе реальный код:
const char* a = ::getenv("VAR");
if (a == NULL)
a = "[NULL]";
Но в каком-то внутреннем стремлении сделать код "немного лучше", можно написать так:
const char* a = (a = ::getenv("VAR"), a ? a : "[NULL]");
Мне внутренне больше нравиться второй вариант. Он как-то выразительнее. Но на code view я, конечно, буду настаивать однозначно на первом, так как не только мне одному этот код потом читать.
Также в С++ считается хорошим тоном объявлять переменную цикла ''for'' прямо в теле оператора:
for (int i = 0; ...
Но вот конструкции типа:
if (int a = foo()) {
...
}
или
while (int a = foo()) {
...
}
уже немного режут глаз, хотя и являются корректными.
А у вас какие есть прикольные сокращение? пусть даже не для production code?
А я вот в последнее время полюбил объявление переменной в if . Удобно когда функция возвращает выделенный внутри указатель , перед закрывающей скидкой ставиться delete, таким образом удобно следить за корректным освобождением памяти в конце блока.
ОтветитьУдалить