Re[4]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 08:30
Оценка: -1
Здравствуйте, T4r4sB, Вы писали:

TB>>>Ты на беззнаках даже тупо от ЭН до нуля проитерироваться не можешь без дополнительного бубна.


R>>А в чем проблема?


TB>i--, заменяющее сразу два блока из заголовка for?


И? Где тут "дополнительный бубен" и "ты не можешь"?

TB>Мы вам перезвоним, ога.


Звоните сразу в спортлото.
--
Re[5]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 08:41
Оценка: +3
Здравствуйте, rg45, Вы писали:

TB>>i--, заменяющее сразу два блока из заголовка for?


R>И? Где тут "дополнительный бубен" и "ты не можешь"?


Подобные извращения, которые заставляют код выглядеть противоестественно — это и есть дополнительный бубен, если что. Возможность записать обратный цикл хоть как-то тут никто не отрицает, мы отрицаем именно возможность записать его "нормально".
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re: Откуда эта лютая любовь к знаковым целым?
От: reversecode google
Дата: 05.05.20 08:51
Оценка: 2 (2)
https://stackoverflow.com/questions/3093669/why-unsigned-types-are-more-efficient-in-arm-cpu/6532932#6532932
Re[6]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 08:58
Оценка: +1 -1
Здравствуйте, T4r4sB, Вы писали:

TB>>>i--, заменяющее сразу два блока из заголовка for?


R>>И? Где тут "дополнительный бубен" и "ты не можешь"?


TB>Подобные извращения, которые заставляют код выглядеть противоестественно — это и есть дополнительный бубен, если что. Возможность записать обратный цикл хоть как-то тут никто не отрицает, мы отрицаем именно возможность записать его "нормально".


Вот так вот незаметно перешли от "ты не можешь" к категореиям "нормально" и "противоестественно". Ну и что противоестественного в замене двух выражений одним? Почему это бубен и почему он *дополнительный*? И кто нынче решает, что "нормально" и что "естественно"? Есть какие-нибудь критерии, кроме твоих представлений о добре и зле?
--
Re[7]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 09:02
Оценка: +1 -1
Здравствуйте, rg45, Вы писали:

R>Вот так вот незаметно перешли от "ты не можешь" к категореиям "нормально" и "противоестественно".


Никуда не переходили, ты не смог записать обратный беззнаковый цикл без бубна.

R>Ну и что противоестественного в замене двух выражений одним?


i-- в качестве второго выражения заголовка for?
Ты так пишешь в продакшоне? Мы вам перезвоним.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[8]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 09:16
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:

R>>Вот так вот незаметно перешли от "ты не можешь" к категореиям "нормально" и "противоестественно".

TB>Никуда не переходили, ты не смог записать обратный беззнаковый цикл без бубна.

Определение бубна в студию.

R>>Ну и что противоестественного в замене двух выражений одним?

TB>i-- в качестве второго выражения заголовка for?

А почему нет-то? Там куда более интересные варианты допустимы, вообще-то:

https://en.cppreference.com/w/cpp/language/for

    condition     -     either
            - an expression which is contextually convertible to bool. This expression is evaluated before each iteration, and if it yields false, the loop is exited.
            - a declaration of a single variable with a brace-or-equals initializer. the initializer is evaluated before each iteration, and if the value of the declared variable converts to false, the loop is exited.



TB>Ты так пишешь в продакшоне? Мы вам перезвоним.


Ну эти причитания я уже слышал. Это все твои аргументы?
--
Re[9]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 09:21
Оценка: +3 -1
Здравствуйте, rg45, Вы писали:

R>Определение бубна в студию.


Мы вам перезвоним.

R>А почему нет-то? Там куда более интересные варианты допустимы, вообще-то:


Ты думаешь, я синтаксис for не знаю?
Тебе не приходило в голову, что от хорошего кода требуется что-то ещё кроме синтаксической корректности?

R>Ну эти причитания я уже слышал. Это все твои аргументы?


А тебе этого мало?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[5]: Откуда эта лютая любовь к знаковым целым?
От: Stanislav V. Zudin Россия  
Дата: 05.05.20 09:21
Оценка: +2
Здравствуйте, rg45, Вы писали:

TB>>i--, заменяющее сразу два блока из заголовка for?


R>И? Где тут "дополнительный бубен" и "ты не можешь"?


Тут, я полагаю, вопрос привычки.
Кто-то, например, очень не любит двойное отрицание, т.к. поведение неочевидное и нужно вдумываться, что делает этот код.

Чтобы отличить --i от i-- в данном контексте тоже нужно напрягаться.
Поэтому если можно написать проще, то предпочитают писать проще.
В твоём примере, например, с использованием переполнения.
_____________________
С уважением,
Stanislav V. Zudin
Re[10]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 09:28
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Мы вам перезвоним.


Ваш звонок очень важен для нас.

TB>Ты думаешь, я синтаксис for не знаю?


Только об этом и думаю.

TB>Тебе не приходило в голову, что от хорошего кода требуется что-то ещё кроме синтаксической корректности?


Мне приходило в голову, что утверждения желательно чем-то подкреплять.

R>>Ну эти причитания я уже слышал. Это все твои аргументы?

TB>А тебе этого мало?

Чего "этого" — стонов? Для того, чтобы вызвать сочувствие, может, и достаточно. Для остального маловато будет.
--
Re[6]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 09:29
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Тут, я полагаю, вопрос привычки.


Так и я о том же, собственно.
--
Re[6]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 09:44
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Тут, я полагаю, вопрос привычки.


Это вопрос хоть какой-то возможности пройти код ревью, лол.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[7]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 09:48
Оценка: +1
Здравствуйте, T4r4sB, Вы писали:

TB>Это вопрос хоть какой-то возможности пройти код ревью, лол.


Ну, у кого что болит, как говорится.
--
Re[7]: Откуда эта лютая любовь к знаковым целым?
От: Stanislav V. Zudin Россия  
Дата: 05.05.20 09:49
Оценка: +4
Здравствуйте, T4r4sB, Вы писали:

SVZ>>Тут, я полагаю, вопрос привычки.


TB>Это вопрос хоть какой-то возможности пройти код ревью, лол.


Забыл добавить "...в нашей команде...".
_____________________
С уважением,
Stanislav V. Zudin
Re[8]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 09:54
Оценка: +3 -1
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Забыл добавить "...в нашей команде...".


В какой нормальной команде допустимы такие заголовки for?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[2]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 10:12
Оценка: +1
Здравствуйте, Stanislav V. Zudin, Вы писали:


SVZ>К ранеесказанному добавлю ещё один кейс.

SVZ>Индекс в массиве это полноценная сущность БД. Используется вместо указателей.
SVZ>В этом случае отрицательные значения используются для обозначения невалидных объектов (у нас это -1) и для каких-нибудь специальных констант.

Если вынести за скобки вопросы стиля и дизайна, то операция индексирования применима не только к массивам, но и указателям. Ведь, согласно стандарту, операция индексирования — это просто комбинация опраций сложения указателя и числа с последующим разыменованием. *(p + i), *(i + p), p[i], i[p] — все это равнозначные выражения и индекс вполне может быть отрицательным.
--
Отредактировано 05.05.2020 10:24 rg45 . Предыдущая версия .
Re[9]: Откуда эта лютая любовь к знаковым целым?
От: Mystic Artifact  
Дата: 05.05.20 10:14
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Здравствуйте, Stanislav V. Zudin, Вы писали:


SVZ>>Забыл добавить "...в нашей команде...".


TB>В какой нормальной команде допустимы такие заголовки for?


https://github.com/llvm-mirror/llvm/blob/master/lib/CodeGen/VirtRegMap.cpp#L435

Смотрим код, и понимаем, что это просто нытье по поводу стиля, которое, в масштабе — ровным счетом ни на что не влияет. Если это ситуационно нужно — пожалуйста.

Тем более эта конструкция вообще сложности как таковой не имеет. while (i--) это сложно? Или пара SUB/JNC?
Отредактировано 05.05.2020 10:14 Mystic Artifact . Предыдущая версия .
Re[9]: Откуда эта лютая любовь к знаковым целым?
От: Stanislav V. Zudin Россия  
Дата: 05.05.20 10:14
Оценка: +1 -1
Здравствуйте, T4r4sB, Вы писали:

SVZ>>Забыл добавить "...в нашей команде...".


TB>В какой нормальной команде допустимы такие заголовки for?


В любой, где даже рядовой дев способен отличить поведение --i от i--.
У нас, например, разрешено всё, что поддерживается в С++17.

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

У вас такой code-standard откуда сформировался? Просто скопировали чей-то?
Или запретили отдельные конструкции, ибо создавали много багов?
_____________________
С уважением,
Stanislav V. Zudin
Re[9]: Откуда эта лютая любовь к знаковым целым?
От: rg45 СССР  
Дата: 05.05.20 10:16
Оценка: +2
Здравствуйте, T4r4sB, Вы писали:

SVZ>>Забыл добавить "...в нашей команде...".


TB>В какой нормальной команде допустимы такие заголовки for?


А ты уверен, что в вашей команде это не прошло бы через ревью? Такое впечатление, что зашугали тебя там так, что у тебя вполне нормальные конструкции вызывают суеверный ужасъ
--
Re[10]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 10:23
Оценка: +3 -1 :))) :)))
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>В любой, где даже рядовой дев способен отличить поведение --i от i--.

SVZ>У нас, например, разрешено всё, что поддерживается в С++17.

#include <stdio.h>
main (int t, int _, char *a)
{
return!0<t?t<3?
main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a) 
:3,main(-94,-27+t,a)&&t==2?_<13?main(2,_+1,"%s %d %d\n"):9:16:t<0?t<-72? 
main(_,t,"@n'+,#'/*s{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n\ 
{n+,/+#n+,/# ;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!\ 
/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!\ 
/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/\ 
w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}\ 
#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/") 
:t<-50?_==*a?putchar(31[a]):
main(-65,_,a+1):
main((*a=='/')+t,_,a+1):
0<t?main(2,2,"%s")
:*a=='/'||main(0,main(-61,*a,
"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry" 
),a+1);
}

А, чорт, это чистый С. На С++17 подобное у вас прокатит?
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[10]: Откуда эта лютая любовь к знаковым целым?
От: T4r4sB Россия  
Дата: 05.05.20 10:24
Оценка: +2 :))
Здравствуйте, rg45, Вы писали:

R>А ты уверен, что в вашей команде это не прошло бы через ревью? Такое впечатление, что зашугали тебя там так, что у тебя вполне нормальные конструкции вызывают суеверный ужасъ


Да, я уверен, что цикл с кулхацкерским заголовком (а такое использование for, в котором используются побочные эффекты условия выхода, можно назвать только кулхацкерским) бы не прошёл у нас ревью.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.