Ad Briefs
Ad Briefs
@AdBriefsHub

C++ снова напоминает: память — не ваша, если компилятор решил иначе. Алиасинг тут не про «два указателя на одн

C++ снова напоминает: память — не ваша, если компилятор решил иначе. Алиасинг тут не про «два указателя на одно место», а про то, что стандарт жёстко ограничивает, какие типы вообще могут смотреть на один и тот же байт.

Что это значит на практике:
1) Компилятор имеет право считать, что разные типы не пересекаются.
2) Из-за этого он агрессивно переставляет чтения/записи и ускоряет код.
3) Если вы нарушили правила — привет, undefined behavior: баг может жить годами и вылезти только на релизной сборке.

Почему это важно не только для C++-фанатов:
— оптимизации в компиляторах всё умнее, и цена «неаккуратного» кода растёт;
— старые трюки с приведением типов через указатели могут ломаться на новых версиях clang/gcc;
— комитет пытается смягчить боль, но без убийства производительности.

Перевод на язык продакшена: если код полагается на «ну оно же работает», компилятор однажды докажет обратное. ⚙️
Этот пост опубликован в Telegram-канале Ad Briefs. Подписаться можно по ссылке: @AdBriefsHub.
industry

Свежие посты в категории «Industry & Brand News»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.