LINUX.ORG.RU

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

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

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

пусть есть некое выражение. в некотором диапазоне входных значений его вычисление наиболее эффективным способом приводит к ошибкам. мы декларируем что в угоду скорости мы не гарантируем корректного вычисления выражения в этом диапазоне. НО в допустимом диапазоне входных значений мы гарантируем корректное вычисление результата выражения. в этом суть оптимизации.

в треде банда жабистов утверждает, что корректное вычисление результата не гарантируется в принципе никогда. потому что тут написано int а значит у нас майдан, все скачем. UB - только за пределами некоторого допустимого интервала. интервал может съужаться в зависимости от операций конечно. т.е. a*b+c*b может стать (a+c)*b но не может стать a+c*b. логику программы нарушать нельзя.

жабисты говорят что раз они увидели слово UB то оно будет везде.

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

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

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

пусть есть некое выражение. в некотором диапазоне входных значений его вычисление наиболее эффективным способом приводит к ошибкам. мы декларируем что в угоду скорости мы не гарантируем корректного вычисления выражения в этом диапазоне. НО в допустимом диапазоне входных значений мы гарантируем корректное вычисление результата выражения. в этом суть оптимизации.

в треде банда жабистов утверждает, что корректное вычисление результата не гарантируется в принципе никогда. потому что тут написано int а значит у нас майдан, все скачем. UB - только за пределами некоторого допустимого интервала. интервал может съужаться в зависимости от операций конечно. т.е. a*b+c*b может стать (a+c)*b но не может стать a+c*b. логику программы нарушать нельзя.

жабисты говорят что раз они увидели слово UB то оно будет везде.