Выравнивание данных в памяти — фундаментальный, но часто ускользающий от внимания механизм языка C++. Оно не описывается в большинстве учебников по алгоритмам, его легко пропустить на code review, и его нарушение не всегда вызывает явный крах. Однако цена незнания высока: это тихий, но ощутимый проигрыш в производительности, который может сводить на нет усилия по оптимизации кода. На докладе мы разберём, механизм выравнивания данных, его проявление в структурах и способы явного управления размещением объектов в памяти.