лишь слух
Какой из? там их не одна штука
Точно не могу сказать... Доклад называется Purging Undefined Behavior & Intel Assumptions in a Legacy C++ Codebase - Roth Michaels CppCon 2022
Каждый год убирают, но только на один день
Соответственно все программы написанные и главное скомпилированный в этот Благодатный день работают без UB. Но есть одна проблема: в программе не должно быть ни одной ошибки, иначе когда люди обнаруживают ошибку, начинает передкончилокомпилировать - А 1 апреля уже кончилось
while(1){ try{} catch(...){} }
А что тут не так?🤔
если дочитать до конца (даже не доклад, а его название!!), станет понятно, что речь не о языке, а о конкретной программе
Это программа пикапера, пока пиздюлей за UB не отхватит будет пробовать
Для некоторых случаев подойдёт. Например сервер, датчики
к сожу, от UB этот код не защищает
forward-progress, полагаю
Даже если все исключительные ситуации прочеканы на испытаниях?
Есть какие-то попытки убрать UB при чтении неинициализированных локальных переменных
исключение это же не про UB.
А в чем тут UB? В той переменной будет случайный набор битиков.
Вычислять его (читать) считается неопределенностью, кроме как в ряде случаев с байтоподобными типами.
int f ( ) { int i; return i; }
http://eel.is/c++draft/basic.indet#2
ты же возвращаешь локальную переменную. Это уже о другом, а не о том, что ты выше написал.
int f(bool b) { unsigned char c; unsigned char d = c; // OK, d has an indeterminate value int e = d; // undefined behavior return b ? d : 0; // undefined behavior if b is true } http://eel.is/c++draft/basic.indet#example-1
Там бы не было проблемы, будь оно инициализировано: int f ( ) { int i{}; return i; }
Гм. Понял)
Не ошибся. Всё будет нормально - вернет нечто случайное, но как генератор случайных чисел такое делать не нужно.
Тоже в упор не вижу никаких проблем, кроме того, что получишь в результате некое случайное значение.
Сможете это объяснить, в таком случае?
bool в суперпозиции
Не могу. Но аналогичное в С работает ожидаемо мною. Значит я уже сильно отстал от современных С++ и они уже в корне не совместимы с С.
Т.н. кубит, да.
чего ты рогом уперся? программа с UB может взорвать твой холодильник. а ты как фома неверующий рассуждаешь об UB
В холодильнике еще долго будет старый и надежный С. Эмбедры очень не любят С++.
ты так говоришь, что C защищен от UB
Нет, но там они достатоно однозначны.
нет однозначного UB, в этом фишка. все твои рассуждения о примерном поведении программы разбиваются о скалы оптимизирующих компиляторов
И своей избыточной оптимизацией сломали главный принцип С и С++.
С или не C, в LLVM IR br на undef это UB, и один из пассов просто выкидывает этот код даже в С99 режиме https://godbolt.org/z/K33nMEnqM
Не пишите говнокод с UB - не будет "избыточной" оптимизации
короче, хочешь потрепать языком велкам в @fludpac, а генофонд нации не отравляй идеями о том что есть хороший понятный UB старый и ламповый
Ну да, например, выход за границы массива. Однозначно будет задница.
Обсуждают сегодня