ноль всегда UB? А как же иеее754?
https://eel.is/c++draft/expr.mul#4.sentence-2
А стандарт не гарантирует именно такое представление чисел с плавающей точкой И где-то это может быть аж хардварное исключение, если процессор работает с иным предствлением чисел. Так что тут вполне себе UB. И что-то гарантировано сказать про 1.0 / 0.0 нельзя Что касается деления 0 на 0, то это и в математике невозможно. Требование единственности всё-таки всплывает при более дотошном определении операции деления как отображения. Так что уточнение про 0/0 неверно.
Хардварные исключения fpu обрабатываются особым образом и это никакое не UB: https://en.cppreference.com/w/cpp/numeric/fenv/fetestexcept
Обсуждают сегодня