LINUX.ORG.RU

История изменений

Исправление ckotinko, (текущая версия) :

ок, я был неправ. действительно, 0=nullptr. покажите на меня пальцем и посмейтесь.

вопрос-то в данном треде стоит ширше, ширее:

если мы попали в ситуацию, когда некоторая оптимизация явно использует UB, то должен ли компилятор предупреждение? делается утверждение, что если уж компилятор решил воспользоваться UB для отсечки некоторых вариантов, то ему следует об этом известить программиста.

Даже если программист сам виноват. Ну виноват. Но компилятор-то мог бы и предупредить - в других случаях UB он предупреждает.

Кроме того, я ведь утверждал что: из того, что вариант значения приводит к UB, не следует его исключать, а следует оставить чтение не-константной переменной как есть. Пусть падает. Не следовало сводить переменную к константе. Всё.

Даже так скажем:

пусть из null следует UB. но из !UB не следует !null

А->B=1

!A->!B !=1

из первого уравнения следует, что допустимые комбинации (0,0),(0,1),(1,1). но комбинация (0,1) во втором уравнении даст 0: 1->0=0

Исходная версия ckotinko, :

ок, я был неправ. действительно, 0=nullptr. покажите на меня пальцем и посмейтесь.

вопрос-то в данном треде стоит ширше, ширее:

если мы попали в ситуацию, когда некоторая оптимизация явно использует UB, то должен ли компилятор предупреждение? делается утверждение, что если уж компилятор решил воспользоваться UB для отсечки некоторых вариантов, то ему следует об этом известить программиста.

Даже если программист сам виноват. Ну виноват. Но компилятор-то мог бы и предупредить - в других случаях UB он предупреждает.

Кроме того, я ведь утверждал что: из того, что вариант значения приводит к UB, не следует его исключать, а следует оставить чтение не-константной переменной как есть. Пусть падает. Не следовало сводить переменную к константе. Всё.