LINUX.ORG.RU

Если он односложный, почему бы и нет. Если каша из:

(some ()) ? (some_1()) ? ++a : ++b : (some_2()) ? --a : --b;

То в жопу такой Perl.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)

Дурацкие операторы пост-,пре-инкремента имеют смысл если у тебя что вроде http://en.wikibooks.org/wiki/68000_Assembly#Indirect_addressing_with_postincr... например. А если у тебя х86 то они нахер не нужны. Не используй их вообще, кроме случаев, когда они перегружены как в дурацких стл итераторах.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Это как пример. Допустим, может быть вызов одного из методов.

panter_dsd ★★★★
() автор топика

Ориентируюсь на читаемость кода.

anonymous
()

Как вы относитесь вот к такому

Так пишут только мудаки.

no-such-file ★★★★★
()
Ответ на: комментарий от panter_dsd

++*(&a+(&b-&a)*!!some())

но «лучше»

(some()?a:b)+=1

а если уже не компиляеться то

++*(some()?&a:&b)

зы.http://cm.bell-labs.com/cm/cs/who/dmr/kbman.html 3.0 values and Lvalues

qulinxao ★★☆
()
Ответ на: комментарий от DELIRIUM

Они нужны если у тебя нет оптимизирующего комнпелятора. Так что они дурацкие, потому что нужны только для дурацких конпеляторов.

nanoolinux ★★★★
()
Последнее исправление: nanoolinux (всего исправлений: 1)
Ответ на: комментарий от nanoolinux

А это не мой бред. Это из темы про паттерны.

Deleted
()

Использовать тернарный оператор таким образом не получится во всех случаях, поэтому лучше и не начинать. Это ведь expression, а не statement, в нём ограничение на совместимость подвыражений.

xaizek ★★★★★
()

Выражение с побочными эффектами - вообще не лучшая идея.

cord
()
Ответ на: комментарий от nanoolinux

Дурацкие операторы пост-,пре-инкремента

операторы в порядке. это с людьми что-то не то.

pef-secure
()
Ответ на: комментарий от qulinxao

++*(&a+(&b-&a)*!some())

вот кстати интересно, а если эти переменны в разных сегментах, что между ними не определена операция разницы указателей? по стандарту, операция разницы указателей определена только для элементов одного массива.

pef-secure
()
Ответ на: комментарий от nanoolinux

Они нужны если у тебя нет оптимизирующего комнпелятора. Так что они дурацкие, потому что нужны только для дурацких конпеляторов.

ну и бред же. инкремент даже набирать быстрее просто. иначе, если продолжить твою мысль и не останавливаться на полпути, то и += надо назвать «дурацким».

pef-secure
()
Ответ на: комментарий от qulinxao

++*(some()?&a:&b)

самый рабочий вариант из тех, что ты предолжил. но стоит ли его использовать вместо ифа, лично я не убеждён.

pef-secure
()
Ответ на: комментарий от pef-secure

определение языка более строгое и обещающее ub(или ещё чё похуже) чем реализации

тем более сегменты ща не в фаворе ( доступные прогеру) есть плоская память аля x86-64 тератерабайт.

поэтому разность на битах (а адресе пока это всёж равнодлинные битовые последовательности)

ну и да для симметрии и меньшей затратности видимо так :

++*(&a^(&a^&b)*!some())

ну и меньше путаницы ибо ^ взаимообратна в отличии от +-

qulinxao ★★☆
()
Последнее исправление: qulinxao (всего исправлений: 1)
Ответ на: комментарий от pef-secure

пока из си не пытались стандартизировать

вроде(судя по археологии) можно было компилять

++(u?var1:var2)

ибо если

++arr[u?i1:i2] можно то и .

qulinxao ★★☆
()

из совсем свежего:

$key_is_num 
  ? @$aref[$mid] >  $key ? $high = $mid - 1 : ($low = $mid + 1) 
  : @$aref[$mid] gt $key ? $high = $mid - 1 : ($low = $mid + 1);

Deleted
()
Ответ на: комментарий от qulinxao

поэтому разность на битах (а адресе пока это всёж равнодлинные битовые последовательности)

для них определены операции: ptr-ptr и ptr+-size_t. преобразование в целые числа уже частность и в стандартне не определена. ptr-ptr определно только для случая, когда это указатели из одного массива. в частном случае, когда эти указатели в одной плоской модели. когда компилятор видит, что программист написал UB, он вправе генерировать такую несусветную херню... оно тебе надо?

pef-secure
()
Ответ на: комментарий от Deleted

из совсем свежего:

ой. оно работает? оберни первый = в скобки хотя бы.

@$aref[$mid] >  $key ? ($high = $mid - 1) : ($low = $mid + 1) 

так хотя бы я буду видеть, что код рабочий.

pef-secure
()
Ответ на: комментарий от unt1tled

Пости на говнокод, пусь другие тоже поржут.

плакать надо...

pef-secure
()
Ответ на: комментарий от Shadow1251

для тех кто так пишет в аду приготовлен специальный котёл... что мешает писать хотябы так? :

if (some()) {
    ++a;
} else {
    ++b;
}

mm3 ★★★
()
Ответ на: комментарий от pef-secure

а до этого еще такой код:

return $mid if $is_num ? @$aref[$mid] == $key : @$aref[$mid] eq $key;

хотя тут мне уже не очевидно о чём думал программист в этом сравнении

что именно? если key строка - сравниваем как строку, иначе как число.

Deleted
()
Ответ на: комментарий от pef-secure

ошибок бояться - в perl не ходить :)

Deleted
()
Ответ на: комментарий от pef-secure

Набирать быстрее и просто, когда осилил дворак. Запомни это. А по поводу „бреда“ - Полиграф Полиграфыч тоже был не согласен с обоими, да.

nanoolinux ★★★★
()
Ответ на: комментарий от Deleted

т.е. решения ты не предлагаешь

Решения чего? Того, что ты не знаешь, интегер у тебя в переменной или строка? А может там указатель? Или того, что та нелепость, на которой ты это пишешь, не умеет имплиситную конвертацию строк в интегеры (это при условии, что в строке 100% число, на что я бы, смотря на этот код, полагаться не стал).

unt1tled ★★★★
()
Ответ на: комментарий от Deleted

что именно?

порядок операций. если берёшь элемент массива по ссылке, то очевидная мне запись пишется

$arr->[$mid] == $key

а что ты написал я так сразу не смогу сказать как распарсилось, поскольку приведение $arr к массиву через @$arr я понимаю в простых случаях, когда нет других модифицирующих смысл выражений. ну и по хорошему эти случаи не надо нагромождать в одно выражение, если можно потерять нить.

pef-secure
()
Ответ на: комментарий от unt1tled

я бы просто в каждый момент времени знал, num у меня в переменной или не num

он похоже пишет какую то «библиотечную» функцию типа сортировки непонятно чего.

pef-secure
()
Ответ на: комментарий от mm3

Скобки пишу, если предполагается больше одного statement'а.

// P.S. пишу из специального котла :)

Shadow1251
()
Последнее исправление: Shadow1251 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.