Это не ?:
?: это удобно и правильно.
Но есть разница между ?: и
for(int i = 0, j = 0;
j < n ? 1 : i < n - 1;
j = j < n ?
((ar[i] > ar[j] ? ar[i] ^= ar[j] ^= ar[i] ^= ar[j] : 0),
( j + 1 ))
: ++i // иначе j=n, идем на следующую итерацию
);
На вскидку, сколько времени, по вашему, у девелопера, который не читал эту статью, возьмет понять что делает этот код? И бонусный вопрос — средняя концентрация мата на предложение при попытке понять вышенаписанное. Даже сам автор подобного кода через 2 дня ничего в нем не поймет.
Проблема в том, что периодически встречаются «оптимизаторы», которые так пишут не только куски кода, а целые проекты. Для них в аду отдельные котлы есть — с кипящим майонезом, шипами, бензопилами и ректальными ананасами (см. Little Nicky).
Лаконичность это хорошо, согласен, но используюя кю и ку далеко не уйдешь.
?: это удобно и правильно.
Но есть разница между ?: и
for(int i = 0, j = 0;
j < n ? 1 : i < n - 1;
j = j < n ?
((ar[i] > ar[j] ? ar[i] ^= ar[j] ^= ar[i] ^= ar[j] : 0),
( j + 1 ))
: ++i // иначе j=n, идем на следующую итерацию
);
На вскидку, сколько времени, по вашему, у девелопера, который не читал эту статью, возьмет понять что делает этот код? И бонусный вопрос — средняя концентрация мата на предложение при попытке понять вышенаписанное. Даже сам автор подобного кода через 2 дня ничего в нем не поймет.
Проблема в том, что периодически встречаются «оптимизаторы», которые так пишут не только куски кода, а целые проекты. Для них в аду отдельные котлы есть — с кипящим майонезом, шипами, бензопилами и ректальными ананасами (см. Little Nicky).
Лаконичность это хорошо, согласен, но используюя кю и ку далеко не уйдешь.
С новым счастьем:)