170 похожих чатов

Я не понимаю, какие претензии могут быть к тому, что

в расте знаковое переполнение циклическое, что это явно вбито в компилятор? Не хотите циклического переполнения, используйте семейство функций wrapping*, saturating*, overflowing* и checked*. На любой вкус. Если надо, можно даже для конкретной функции поведение "+" переписывать явным образом.

5 ответов

7 просмотров

Никаких претензий. Я не понимаю чем это лучше

Aleksei Kuznetsov Kuznetsov
Никаких претензий. Я не понимаю чем это лучше

Тем, что UB не ограничено одними испорченными данными.

нюанс в том, что вы не знаете заранее, где у вас обычное умножение надо заменить на вот эти вот wrapping/saturating/etc. И вы точно так же можете использовать подобное семейство в плюсах. Разница ведь не в поведении реальных программ, разница в том, что растовитяне умудряются даже такие кейсы выдать за вин раста

Roman- Автор вопроса
Андрей Руссков
нюанс в том, что вы не знаете заранее, где у вас о...

Конечно это вин, потому что нет UB. Отличие в том, что это обычная операция, ну перепутаете вы в коде + и +, в данном случае компилятор вас не защитит. Но при этом поведение в любом случае будет корректным, просто не таким, как вы ожидаете

Roman
Конечно это вин, потому что нет UB. Отличие в том,...

для начала пожалуйста ознакомьтесь что значит термин "UB"

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
приветы , подскажите что я не так сделал , почему у меня скрипт не работает в программе Revit ? ;Autohotkey_RU IfWinActive ("ahk_exe Revit.exe") ; только в открытом Revit Gu...
Anton Terentev
2
> комьюнити я бы не судил по этому чату. Как мы видели по статам просмотров нескольких телеговских постов, то в чате их набивается 30-40 или даже выше, когда как общаются акти...
Constantin F.
4
void bytes2hex(uint8_t* to, uint8_t* from, uint16_t l) { // len(from) == l; len(to) == l * 2 for (uint16_t i = 0; i < l; ++i) { *(to++) = hex[(from[i] >> 4) & ...
#
3
Погодь, а как ты переопределяешь функцию в хедере? Эрланг это же не С, тут явный вызов макросов
Maksim Lapshin
6
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Как сделать чтобы short точно был 2 байта, int точно 4 байта ?(без стандартных библиотек, ну типа без int16_t, int32_t)
#
8
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Карта сайта