ПрограммированиеФорумОбщее

Красивый код (5 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#60
18:06, 11 апр 2023

Кому тут лопату выдать?))

вы б хоть на дату последнего сообщение смотрели (знаю, что спамера тут удалили)

#61
23:42, 11 апр 2023

MrShoor
> for(size_t i = vector.size(); --i >=0;)

for(size_t i = vector.size(), N = vector.size(); --i < N;)

не благодари.

#62
0:03, 12 апр 2023

Вот из-за таких пробелов, удлиняющих строку чуть ли не вдвое, размер кода принято считать в количестве строк, а не в их общем весе.

#63
0:38, 12 апр 2023

Слабо байтолюбите:

for(size_t i = vector.size(); --i != size_t(-1); do_shit(vector[i]));
#64
0:57, 12 апр 2023
for(size_t i = vector.size();  i > 0; --i) do_shit(vector[i - 1]));
#65
11:41, 12 апр 2023
for(auto i = vector.size();  i--; do_shit(vector[i]));

и еще из "наркомании":

for(auto i = vector.size(); i--; [&](int i) {std::cout << vector[i] << std::endl;}(i));

которую можно сократить до:

for(auto i = vector.size(); i--; std::cout << vector[i] << ((i) ? ",":"\n"));

но так не интересно :)

#66
13:25, 12 апр 2023

Aroch
ты уверен, что твоем коде с пост инкрементом нет UB?

#67
13:35, 12 апр 2023

thevlad
> ты уверен, что твоем коде с пост инкрементом нет UB?
уверен, хотя бы потому что в моем коде нет инкремента, а декремент но это не принципиально, но еще и потому что size() возвращает беззнаковый тип для которых overflow чётко определен. Да и перехода с 0 на max_value_of_size_t компилятор даже делать не будет, так как цикл остановится на 0 и значение i уже не будет иметь значения.

#68
14:12, 12 апр 2023

Aroch
Да, ты прав, там в каждом выражении будет sequence point.

#69
14:16, 12 апр 2023

thevlad
> Нет, а sequence point где в этой строчке? Декремент может выполнится как до,
> так и после "vector [ i ]"
откуда ты такое придумал? for(a;b;c); a,b,c отдельные выражения которые имеют строгую последовательность.

#70
16:38, 12 апр 2023

Aroch
> .
этот то понятно, а вот в if (i-- > 0) где будет sequence point?
https://stackoverflow.com/questions/38770560/order-of-evaluation-… ison-operator

судя по всему, она будет после выражения i-- > 0
соответсвенно возможно два варианта:
i -= 1
if (i > 0)
и
if (i > 0)
i -= 1

#71
18:00, 12 апр 2023

thevlad
> соответсвенно возможно два варианта:
постфикс будет выполнен после сравнения. Но если ты боишься, то можешь писать

0 < --i + 1

по смыслу тоже самое. Только зачем ты мне этот вопрос задаешь? Я нигде не писал

i-- > 0
#72
18:19, 12 апр 2023

Laynos
> либо чересчур сложную, неоправданную систему проектирую
Такое есть в CAD-системах.

#73
18:26, 12 апр 2023

Aroch
> по смыслу тоже самое. Только зачем ты мне этот вопрос задаешь? Я нигде не писал
Ты писал  "i--" что эквивалентно "i-- != 0". Там нечего бояться но, если sequence point после выражения внутри if, то сайд эффекты от пост декремента могу произойти в любой момент времени до нее. То есть очевидное UB.

#74
18:49, 12 апр 2023

thevlad
> если sequence point после выражения внутри if, то сайд эффекты от пост декремента могу произойти в любой момент времени до
> нее.
ну не используй пост операции в таких случаях, к чему вообще весь этот разговор, или ты предлагаешь вообще пост операции не использовать?

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.