Re[23]: Carbon
От: CreatorCray  
Дата: 18.04.24 20:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

CC>>Проблема в твоих руках

S>Да, действительно, потерял при копи-пейсте.


CC>>А где тебе написали конкретно что "UB — ерунда"?

S>Ну, например, поставили фейспалм на простое утверждение "UB, из которого язык состоит чуть менее, чем полностью".
И сейчас поставлю, потому что категоричность сего утверждения фейспалмова чуть более чем полностью
Теперь твоя очередь объяснять как ты из моего фейспалма вытащил утверждение "UB — ерунда"

S>Вот я вижу, что интовая арифметика используется примерно в каждой первой программе.

Что именно ты тут понимаешь под "интовая арифметика"?

S>Что вы называете "странными конструкциями"?

метапрограммирование

S>Compile-time вычисления сами по себе штука хорошая, поскольку позволяют сильно улучшить перформанс программ без потери общности. Те самые zero-cost abstractions, ради которых люди и выбирают C++ вместо менее упоротых языков.

Вот только не надо забывать что compile-time вычисления работают НЕ по правилам платформы, под которую выполняется компиляция.
То, что ты в данном примере называешь UB — на самом деле очень даже defined behavior. Неожиданный — да, но не undefined.

S>
S>long avg(long a, long b, long c)
S>{
S>  return (a+b+c)/3; 
S>}
S>

А что именно ты тут считаешь UB? Переполнение знакового типа имеет очень даже defined поведение для платформы, и если погромист не знает что творит — это недостаток квалификации.

S>Когда вы писали "у меня точно такой же код", я сходу заподозрил, что у вас там беззнаковая арифметика.

А у меня абсолютно везде беззнаковая, кроме тех редких мест где знак именно что нужен.

S>Как раз у вас в предыдущей попытке compile-time вычисления прошли "честно", и получили правильный результат.

Потому что "оптимизатор" по какой то внутренней причине ниасилил свернуть формулу в символьном виде, сработал fallback path и он формулу посчитал внутри себя на таких же типах, на том же железе.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.