11 декабря приглашаем разработчиков C++ в нашу штаб-квартиру на Водном стадионе.
Поговорим про будущее метапрограммирования, исключения C++ через призму компиляторных оптимизаций и на примере контейнеров и кастомных аллокаторов мы увидим как можно самостоятельно реализовать часть runtime C++.
После выступлений можно будет пообщаться с докладчиками и другими участниками мероприятия, обменяться опытом и поговорить на профессиональные темы.
Количество мест ограничено, поэтому нужно заранее зарегистрироваться и получить приглашение.
Программа:
18.30 Регистрация
19.00 "Bare metal C++" Карина Дорожкина, Kaspersky R&D
Мы настолько привыкли к присутствию runtime в реализациях компиляторов, что попытка запустить простой «Hello, world» на «голом» железе уже может вызвать некоторые проблемы. Цель доклада показать на практике особенности написания и сборки С++ кода в условиях ограниченных ресурсов и отсутствия C/C++ RTL. На примере контейнеров и кастомных аллокаторов мы увидим, как можно самостоятельно реализовать часть runtime C++. Доклад подразумевает описание практического решения в bare metal среде, которое впоследствии может быть воспроизведено слушателями.
19.45 Перерыв
20.00 "Сериализация в C++ никогда не была проще! Но подождите, это ещё не всё
" Павел Новиков, Align Technology R&D
Предложение P1717 в стандарт C++ предлагает сверхcпособности, не имеющие равных тем, что у нас были прежде, даже в сравнении с наиболее изощренными приемами шаблонного метапрограммирования. Мы приоткроем завесу над этим и узнаем как обуздать эту мощь на примере реализации сериализации. Мы увидим какие возможности предлагает рефлексия, грядущая в скором времени, и как метапрограммирование в C++ качественно значительно изменится в будущем.
20.45 "Исключения C++ через призму компиляторных оптимизаций" Русяев Роман, Samsung R&D
На дворе 21-й век, непроизводительная реализация обработки C++ исключений на основе setjmp/longjmp уже в прошлом. Современные компиляторы, такие как gcc и clang, используют продвинутую реализацию C++ исключений, называемую zero-cost exception handling. Но насколько действительно это zero-cost? Да, мы платим увеличением размера бинарного файла, а также в случае, когда исключение действительно выбрасывается, запуская процесс stack unwinding, вызывая деструкторы для локальных объектов и т.д. Но теряем ли мы производительность, если исключение не выбрасывается? Появляются ли какие-то ограничения на компиляторные оптимизации? В этом докладе дано описание того, каким образом С++ исключения оказывают влияние на компиляторные оптимизации. Какие оптимизации не могут быть применены в случае, если функция может бросить исключения, а какие оптимизации становится труднее применять.
Примеры реализации исключений и компиляторных оптимизаций рассматриваются на базе LLVM.
Доклад преследует цель дать людям понимание, когда делать сборку своего приложения с -fno-exceptions имеет смысл, а когда можно наслаждаться всеми прелестями использования C++ исключений, зная, что их код не значительно потерял в производительности по сравнению с кодом, где исключения отключены.
Напоминаем, что для того чтобы восстановить билет организатору можно не писать.
Если вы хотите вернуть билеты, вы можете сделать это по ссылке из письма с билетами или оформить запрос организатору в вашем  личном кабинете.