14446
Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981
ну чисто технически программа может работать бесконечно пока ее не прибьют снаружи
Читать полностью…
разница наверное есть, но как по мне тонкая как между шампанским и игристым вином 🌚
Читать полностью…
а для импл дефайнед получается должны, ну тут разница есть
Читать полностью…
ну т.е. разработчики компилятора не обязаны определять и документировать поведение для каждого случая UB
Читать полностью…
или это просто классификатор, от которого предлагают плясать разработчикам компилятора?
Читать полностью…
undefined behavior \ unspecified behavior \ impl. defined behavior определяется стандартом
Читать полностью…
и уб определяется по спеке или по документации конкретного компилятора?
Читать полностью…
откатываясь назад аргумент "компилятор для UB тоже какой-то код сгенерировал" не совсем ясен. для любого синтаксически корректного кода будет какой-то код сгенерирован.
Читать полностью…
но они же и ub могут взять и определить ему поведение
Читать полностью…
а мог изменить поведение кода от одного минорной версии к другой
Читать полностью…
for (int i = 1; i < 100000000000000000; i *= 10)
Вот тебе пример UB где компилятор оптимизирует цикл до while(1)
а мог не сгенерировать и выкинуть за ненадобностью
Читать полностью…
ну это тоже что то из ебанутых случаев. какие выходы из бесконечных циклов
Читать полностью…
ну например см. статью выше, бесконечный цикл без условия выхода это UB, разработчики компилятора могли бы сказать "окей, мы для всех таких циклов генерируем такой же код с безусловным переходом в начало и все" а могут и сделать вид что таких циклов не бывает, в последнем случае мы увидим ситуацию из примера из статьи, когда в результате вызвался код, который в программе нигде вообще не вызывался.
Читать полностью…
ну юзверям жить с неопределенностью как таковой, а вот конкретная дока выбирает че ей самой делать
Читать полностью…
ну вот если у нас на руках уб по спеке, его задокументировали в доке компилятора, то это же уже не уб
Читать полностью…
в случае с impl. defined мы можем предположить основываясь на документации каким будет поведение программы в результате.
в случае с UB мы можем определить только эмпирически.
как определить что перед тобой, если не дали спеку в руки?
Читать полностью…
могут, а могут и не определять, поведение кода при UB может быть побочным эффектом конкретной реализации
Читать полностью…
impl. defined — говорит о том что авторы компилятора сами выбирают и гарантируют определенное поведение
Читать полностью…
а имплементейшн дефайнед не может сказать "выкинем"?
Читать полностью…