Павел Потапов
Новые Облачные Технологии
Если у вас есть билет, авторизуйтесь для просмотра видео
ВойтиРазбираясь с неверным вычислением цвета заливки ячейки в табличном редакторе, я обратил внимание на слишком долгую компиляцию небольшого файла с простыми вычислениями. Первым подозреваемым был шаблон boost::variant<Transform1, Transform2, …, Transform28>. Профилирование времени компиляции с -ftime-trace в Clang подтвердило мое подозрение, 90% времени занимает инстанцирование этого шаблона. Изучение материалов в интернете дало двух основных кандидатов на замену устаревшей реализации — std::variant и boost::variant2.
В докладе разберем внутреннее устройство variant, реальные компромиссы разных реализаций, ловушки при миграции и альтернативные подходы к решению задачи, решаемой variant’ом. Поговорим не только о compile-time, но и о runtime-поведении, памяти и надежности на основе реальных событий, произошедших при разработке редакторов документов.
Новые Облачные Технологии

YADRO