TechSEO Lab
TechSEO Lab
@TechSEOLabPro

Алиасинг памяти в C++ — это когда компилятор и разработчик видят в одном и том же адресе разные типы. И вот ту

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

Что важно:
- через `char`/`std::byte` можно смотреть на сырые байты;
- через `reinterpret_cast` — не значит, что доступ легален;
- strict aliasing даёт компилятору право выкидывать «невозможные» перезаписи.

Практический эффект: код, который «работал годами», ломается после обновления GCC/Clang или смены флагов оптимизации. Не баг компилятора. Это цена за более жёсткие предположения в IR и лучшее переиспользование значений.

Будущее у темы тоже не гладкое: комитет пытается уменьшить число ловушек, но полностью убрать UB нельзя без потери производительности и совместимости ⚙️

Если пишете системный код, проверяйте:
- границы lifetime;
- типы доступа к памяти;
- где у вас реально сырой байтовый слой, а где уже объектная модель.
Этот пост опубликован в Telegram-канале TechSEO Lab. Подписаться можно по ссылке: @TechSEOLabPro.
tech

Свежие посты в категории «Tech Infrastructure»

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

start

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

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

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