История изменений
Исправление Siborgium, (текущая версия) :
Вы знаете, одно UB другому UB рознь.
- Разыменовывать нулевой указатель это UB, но я могу с очень высокой точностью предсказать, как именно будет выполняться такой код.
- Нарушать strict aliasing это UB, но в ряде случаев результат исполнения практически гарантирован.
- Обращаться на чтение/запись из нескольких потоков к разделяемой переменной, не используя примитивы синхронизации, это UB, но поведение такого кода тоже более чем предсказуемо.
Не стоит молиться на волшебные два слова в стандарте. Лоб расшибете.
Исходная версия Siborgium, :
Вы знаете, одно UB другому UB рознь.
- Разыменовывать нулевой указатель это UB, но я могу с очень высокой точностью предсказать, как именно будет выполняться такой код.
- Нарушать strict aliasing это UB, но в ряде случаев результат исполнения практически гарантирован.
- Обращаться из нескольких потоков к разделяемой переменной, не используя примитивы синхронизации, это UB, но поведение такого кода тоже более чем предсказуемо.
Не стоит молиться на волшебные два слова в стандарте. Лоб расшибете.