Я очень люблю, когда в технике пытаются «договориться» с ограничениями языка, а потом удивляются, почему всё ломается на проде.
Алиасинг в C++ — ровно такая история. На бумаге это кажется скучной темой для компиляторщиков: кто на что ссылается, где можно оптимизировать, где нельзя. На практике — это один из тех скрытых факторов, которые решают, будет ли код быстрым, предсказуемым и вообще корректным.
Мой hot take: алиасинг — не про «тонкости стандарта», а про доверие между разработчиком и компилятором. Нарушил договор — получил undefined behavior, а вместе с ним баги, которые невозможно нормально дебажить. И да, это тот случай, когда «ну у меня же работало» ничего не значит.
Интересно, что C++ уже не первый год пытается вылечить эту боль пропозалами и новыми правилами, но полностью убрать проблему нельзя: слишком много legacy, слишком много свободы, слишком высокая цена совместимости.
Для UGC- и SMM-команд тут есть понятная мораль: если продукт или техпроцесс построен на скрытых допущениях, рано или поздно он начнёт «оптимизироваться» не в вашу пользу 🧩
UGC Crew
@UgcCrew