Доклады конференции С++ Russia 2020 Moscow

Гор Нишанов Microsoft
Гор Нишанов
Microsoft 
День 1 / 10:30  / Зал 1 / RU /

Сопрограммы в С++20. Прошлое, настоящее и будущее

Детальный обзор корутин (сопрограм), одной из важнейших языковых конструкций, включенной в C++20.

John Lakos Bloomberg LP
John Lakos
Bloomberg LP 
День 2 / 19:00  / Зал 2 / EN / Для практикующих инженеров

Introducing large-scale C++, volume I: Process and architecture

Drawing on his over 30 years of hands-on experience building massive, mission-critical enterprise systems, John Lakos — using never-before-seen excerpts from this glisteningly new volume — elucidates the essential value of (and several techniques needed for) creating and growing hierarchical reusable software, a.k.a. Software Capital, as the foundation for developing C++ software at virtually unbounded scale.

Victor Zverovich Facebook
Victor Zverovich
Facebook 
День 4 / 19:00  / Зал 2 / EN / Для практикующих инженеров

For your in<format>ion

In this talk Victor will give a comprehensive overview of the the {fmt} library and the C++20 formatting library based on it.

Анастасия Казакова JetBrains
Анастасия Казакова
JetBrains 
День 3 / 12:30  / Зал 1 / RU / Введение в технологию

Экосистема языка C++, новое пришествие

В этом докладе мы посмотрим на результаты самых свежих независимых исследований по экосистеме C++, узнаем, сколько же в мире профессиональных C++ разработчиков, какие стандарты и инструменты они используют, как адаптируют новые возможности языка. Попытаемся найти во всем этом логику и посмотреть на язык глазами разработчиков топовых областей применения C++.

Timur Doumler audio++
Timur Doumler
audio++ 
День 2 / 16:00  / Зал 1 / RU /

A standard audio API for C++

In this talk, we will discuss how audio data can be represented in C++ and present a proposal to add a minimal, modern API for audio I/O to the C++ standard library.

Mateusz Pusz EPAM Systems
Mateusz Pusz
EPAM Systems 
День 2 / 17:15  / Зал 2 / EN / Для практикующих инженеров

Rethinking the way we do templates in C++

In this talk Mateusz will summarize his experience and thoughts gathered during the implementation of the Physical Units Library for C++.

Елена Степанова Nokia
Елена Степанова
Nokia 
День 3 / 10:45  / Зал 1 / RU / Для практикующих инженеров

Как обновить компилятор и не тронуться

С чем придется столкнуться при обновлении компилятора на примере gcc и как сделать этот процесс менее болезненным.

Guy Davidson Creative Assembly
Guy Davidson
Creative Assembly 
День 2 / 17:15  / Зал 4 / EN / Академический доклад

Teaching linear algebra to C++

In this talk Guy will fully describe the operation of linear algebra classes and functions, and describe how to customize the objects for particular domains.

Adi Shavit Consultant
Adi Shavit
Consultant 
День 3 / 12:30  / Зал 2 / EN / Для практикующих инженеров

Coroutine X-rays and other magical superpowers

In this talk we’ll X-ray the coroutine compiler magic mechanism to lay bare how data flows in and out of coroutines.

Роман Русяев Samsung
Роман Русяев
Samsung 
Антон Полухин Яндекс.Такси
Антон Полухин
Яндекс.Такси 
День 1 / 10:45  / Зал 1 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Настоящее и будущее copy elision

Антон и Роман расскажут о новом предложении в Стандарт — ultimate copy elision, и покажут, как он улучшит жизнь разработчиков на C++.

Danila Kutenin Google
Danila Kutenin
Google 
День 3 / 12:30  / Зал 3 / EN / Для практикующих инженеров

C++ STL best and worst performance features and how to learn from them

During this session Danila will consider the cases when C++ STL is fast and not enough — due to some standard reasons or compiler optimizations.

Георгий  Грибков PVS-Studio
Георгий Грибков
PVS-Studio 
День 1 / 12:15  / Зал 1 / RU /

Онлайн-использование PVS-Studio с помощью Compiler Explorer

Георгий  Грибков PVS-Studio
Георгий Грибков
PVS-Studio 
День 1 / 12:15  / Зал 4 / RU /

Онлайн-использование PVS-Studio с помощью Compiler Explorer

Георгий  Грибков PVS-Studio
Георгий Грибков
PVS-Studio 
День 1 / 12:15  / Зал 3 / RU /

Онлайн-использование PVS-Studio с помощью Compiler Explorer

Георгий  Грибков PVS-Studio
Георгий Грибков
PVS-Studio 
День 1 / 12:15  / Зал 2 / RU /

Онлайн-использование PVS-Studio с помощью Compiler Explorer

Евгений Захаров Wargaming
Евгений Захаров
Wargaming 
День 4 / 18:30  / Зал 3 / RU /

ECS в UI — правда или вымысел?

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
День 1 / 13:45  / Зал 2 / RU /

Закрытие

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 1 / 13:45  / Зал 3 / RU /

Закрытие

Кирилл Толкачёв JUG Ru Group
Кирилл Толкачёв
JUG Ru Group 
День 1 / 13:45  / Зал 4 / RU /

Закрытие

Евгений Ерохин HyperIntegrate
Евгений Ерохин
HyperIntegrate 
День 3 / 10:45  / Зал 4 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Thread Local в C++ как он есть

Доклад посвящен такой устоявшейся фиче C++, как thread_local. Несмотря на то, что стандартизована она еще в C++11, мало кто понимает, что за машинерия за этим стоит. Как и в каких случаях мы получаем этот функционал бесплатно, а когда в ход идет тяжелая артиллерия.

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
День 2 / 17:00  / Зал 2 / RU /

Открытие

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 2 / 17:00  / Зал 3 / RU /

Открытие

Кирилл Толкачёв JUG Ru Group
Кирилл Толкачёв
JUG Ru Group 
День 2 / 17:00  / Зал 4 / RU /

Открытие

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
День 2 / 20:15  / Зал 2 / RU /

Закрытие

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 2 / 20:15  / Зал 3 / RU /

Закрытие

Кирилл Толкачёв JUG Ru Group
Кирилл Толкачёв
JUG Ru Group 
День 2 / 20:15  / Зал 4 / RU /

Закрытие

Bjarne Stroustrup Morgan Stanley
Bjarne Stroustrup
Morgan Stanley 
День 2 / 17:15  / Зал 1 / EN /

Interview and Q&A with Bjarne Stroustrup

Максим Звягинцев PVS-Studio
Максим Звягинцев
PVS-Studio 
День 2 / 18:30  / Зал 1 / RU /

Примеры интересных багов, обнаруженных с помощью PVS-Studio

Максим Звягинцев PVS-Studio
Максим Звягинцев
PVS-Studio 
День 2 / 18:30  / Зал 4 / RU /

Примеры интересных багов, обнаруженных с помощью PVS-Studio

Максим Звягинцев PVS-Studio
Максим Звягинцев
PVS-Studio 
День 2 / 18:30  / Зал 3 / RU /

Примеры интересных багов, обнаруженных с помощью PVS-Studio

Максим Звягинцев PVS-Studio
Максим Звягинцев
PVS-Studio 
День 2 / 18:30  / Зал 2 / RU /

Примеры интересных багов, обнаруженных с помощью PVS-Studio

Евгений Строков Wargaming
Евгений Строков
Wargaming 
День 2 / 18:45  / Зал 1 / RU /

Генерация С++ кода из метаописания в игровой разработке

Евгений Строков Wargaming
Евгений Строков
Wargaming 
День 2 / 18:45  / Зал 4 / RU /

Генерация С++ кода из метаописания в игровой разработке

Особенности использования С++ в геймдеве на примере UE4. Другие примеры использования генерации кода в игровой индустрии — в MMO-проектах. Какие задачи в комплексе решаются в Wargaming Nexus. Результаты и выводы.

Евгений Строков Wargaming
Евгений Строков
Wargaming 
День 2 / 18:45  / Зал 3 / RU /

Генерация С++ кода из метаописания в игровой разработке

Евгений Строков Wargaming
Евгений Строков
Wargaming 
День 2 / 18:45  / Зал 2 / RU /

Генерация С++ кода из метаописания в игровой разработке

Игорь Лобанчиков
Игорь Лобанчиков
 
День 3 / 12:30  / Зал 4 / RU / Для практикующих инженеров

Компьютерные игры: Как загрузить все ядра CPU

В этом докладе мы рассмотрим эволюцию многопоточности в играх вплоть до сегодняшних дней в исторической перспективе: развитие аппаратной части, подходы, обусловленные распространением аппаратного обеспечения и ограничениями движков, влияние консолей и графических API.

JeanHeyd Meneide Shepherd's Oasis
JeanHeyd Meneide
Shepherd's Oasis 
День 2 / 19:00  / Зал 3 / EN / Для практикующих инженеров

Burning Silicon: Speed for transcoding in C++23

Getting speed, customization, and flexibility out of a text interface for C++23.

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 4 / 17:00  / Зал 3 / RU /

Открытие

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
День 3 / 10:30  / Зал 2 / RU /

Открытие

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 3 / 10:30  / Зал 3 / RU /

Открытие

Кирилл Толкачёв JUG Ru Group
Кирилл Толкачёв
JUG Ru Group 
День 3 / 10:30  / Зал 4 / RU /

Открытие

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
RU /

Закрытие

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
День 3 / 13:45  / Зал 2 / RU /

Закрытие

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 3 / 13:45  / Зал 3 / RU /

Закрытие

Кирилл Толкачёв JUG Ru Group
Кирилл Толкачёв
JUG Ru Group 
День 3 / 13:45  / Зал 4 / RU /

Закрытие

Сергей Козлов Лаборатория Касперского
Сергей Козлов
Лаборатория Касперского  
Евгений Алексеев Лаборатория Касперского
Евгений Алексеев
Лаборатория Касперского 
День 3 / 12:00  / Зал 1 / RU /

C++: Темная сторона

Сергей Козлов Лаборатория Касперского
Сергей Козлов
Лаборатория Касперского  
Евгений Алексеев Лаборатория Касперского
Евгений Алексеев
Лаборатория Касперского 
День 3 / 12:00  / Зал 3 / RU /

C++: Темная сторона

Андрей Карпов PVS-Studio
Андрей Карпов
PVS-Studio 
День 3 / 12:00  / Зал 2 / RU /

Статический анализ кода в 2020 году

Андрей Карпов PVS-Studio
Андрей Карпов
PVS-Studio 
День 3 / 12:00  / Зал 4 / RU /

Статический анализ кода в 2020 году

Евгений Захаров Wargaming
Евгений Захаров
Wargaming 
День 4 / 18:30  / Зал 2 / RU /

ECS в UI — правда или вымысел?

Михаил Матросов Align Technology
Михаил Матросов
Align Technology 
День 3 / 10:45  / Зал 2 / RU / Для практикующих инженеров

Как объявить константу в С++?

В докладе мы рассмотрим, как выбирать спецификаторы static, inline и constexpr при объявлении константы. Отдельно разберём строковые константы и сравним разные способы их объявления. В итоге мы сформулируем универсальные рекомендации на все случаи жизни.

Алексей Миловидов Яндекс
Алексей Миловидов
Яндекс 
День 3 / 12:30  / Зал 2 / RU / Для практикующих инженеров

Как собирать переносимые бинарники для Linux

Софт под Linux часто распространяется собранным под конкретную версию конкретной системы. Вы собрали программу на своей машине, делаете SCP на сервер, но на сервере он не запускается. Как решить эту проблему? Есть множество альтернативных способов и про каждый Алексей расскажет в этом докладе.

Александр Гранин
Александр Гранин
 
День 1 / 12:30  / Зал 4 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Как в Haskell: Final Tagless и eDSL на концептах

В этом докладе мы будем имплементировать дизайн-подход из Haskell, известный как Final Tagless. Мы рассмотрим, что это такое, и как можно выразить Final Tagless с помощью концептов. Мы построим простой eDSL на FT и обсудим его свойства.

Михаил Кашкаров Samsung R&D Russia
Михаил Кашкаров
Samsung R&D Russia 
День 1 / 12:30  / Зал 3 / RU / Для практикующих инженеров

Применение санитайзеров для полного дистрибутива Linux

В этом докладе вы узнаете об опыте внедрения различных санитайзеров в крупномаштабные Linux-based проекты с последующим сопровождением.

Вячеслав Борилин Лаборатория Касперского
Вячеслав Борилин
Лаборатория Касперского  
День 1 / 12:00  / Зал 1 / RU /

Поговорим про KasperskyOS

Вадим Винник SolarWinds MSP
Вадим Винник
SolarWinds MSP 
День 1 / 12:30  / Зал 1 / RU / Для практикующих инженеров

Три этюда о буферизации

Показано решение трёх задач, взятых из практики, обладающих двумя общими чертами: значения, используемые из различных потоков, передаются через промежуточное хранилище, и решения, которые сделаны универсальными, и допускают настройку на множество частных случаев.

Руслан Манаев Яндекс
Руслан Манаев
Яндекс 
День 2 / 19:00  / Зал 1 / RU / Для практикующих инженеров

Рефлексия настоящего и будущего

Руслан продемонстрирует разницу между статической и динамической рефлексией, а также познакомит нас со синтаксическими конструкциями из предложения в стандарт C++ P1717 и с его реализацией.

Денис Кормалев Amazon Robotics
Денис Кормалев
Amazon Robotics 
День 2 / 17:15  / Зал 3 / RU / Для практикующих инженеров

DIY: Thread pool своими руками

В стандартной библиотеке C++ до сих пор нет своего тредпула и не всегда удобно добавлять в проект большие зависимости, как Boost, TBB или Qt, только для возможности асинхронного запуска задач. Этот доклад посвящен созданию своего тред пула шаг за шагом с C++17 в качестве единственной зависимости.

Алексей Веселовский Align Technology
Алексей Веселовский
Align Technology 
День 2 / 19:00  / Зал 4 / RU / Для практикующих инженеров

Анатомия AddressSanitizer

Алексей расскажет о санитайзерах, без которых невозможно представить нынешнюю разработку на C++, и поделится всеми секретами работы с AddressSanitizer.

Антон Квятковский DINS
Антон Квятковский
DINS 
День 3 / 10:45  / Зал 3 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Type loopholes in C++: Убербаг уровня стандарта

Пишем stateful-программы на этапе компиляции и разбираемся, как это работает.

Иван Афанасьев Align Technology
Иван Афанасьев
Align Technology 
День 1 / 10:45  / Зал 4 / RU / Для практикующих инженеров

std::to_string faster than light

Рассмотрим различные варианты ускорить std::to_string для целых чисел в libc++: через оптимизацию аллокаций, наивный алгоритм и std::to_chars. Обратим внимание, почему каждый из алгоритмов оказывается лучше предыдущего: пройдём путь от верхнеуровневых оптимизаций до инструкций.

Вячеслав Борилин Лаборатория Касперского
Вячеслав Борилин
Лаборатория Касперского  
День 1 / 12:00  / Зал 2 / RU /

Поговорим про KasperskyOS

Вячеслав Борилин Лаборатория Касперского
Вячеслав Борилин
Лаборатория Касперского  
День 1 / 12:00  / Зал 3 / RU /

Поговорим про KasperskyOS

Jason McGuiness Count-Zero Ltd
Jason McGuiness
Count-Zero Ltd 
День 1 / 12:30  / Зал 2 / EN / Для практикующих инженеров

A detailed performance analysis of a simple low-latency trading system

During this session you will hear about High-Frequency Trading (HFT) and its optimization, including tricks regarding coding and an extensive performance analysis.

Evgeny Pats GitLab (Previously Fuzzit)
Evgeny Pats
GitLab (Previously Fuzzit) 
День 1 / 10:45  / Зал 3 / EN / Введение в технологию

Effective continuous fuzzing — C++

This talk will give an introduction how to write basic fuzz tests for your code. As well as how to integrate those fuzz tests into your CI. This talk also will give technical overview of how coverage guided fuzzing engines works in general.

Павел Новиков Align Technology
Павел Новиков
Align Technology 
День 1 / 10:45  / Зал 2 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Учимся готовить C++ корутины на практике

Павел подробно расскажет о том, как именно работают корутины в C++, и что нужно сделать, чтобы начать просто и эффективно их использовать.

Sergey Nepomnyachiy Bloomberg L.P.
Sergey Nepomnyachiy
Bloomberg L.P. 
День 3 / 12:30  / Зал 4 / EN / Для практикующих инженеров

Applying the "hourglass" principle in library design

Presenting a technique for assuring ABI compatibility for a closed-source library across environments and versions.

Вячеслав Борилин Лаборатория Касперского
Вячеслав Борилин
Лаборатория Касперского  
День 1 / 12:00  / Зал 4 / RU /

Поговорим про KasperskyOS

Кирилл Тихонов DINS
Кирилл Тихонов
DINS 
Антон Квятковский DINS
Антон Квятковский
DINS 
День 4 / 17:00  / Зал 3 / RU /

Открытие

Herb Sutter Microsoft
Herb Sutter
Microsoft 
День 4 / 19:00  / Зал 1 / EN /

Interview and Q&A with Herb Sutter

C++ Russia team
C++ Russia team
 
День 4 / 17:15  / Зал 1 / RU /

Дискуссия: Обучение C++

Вместе с приглашенными экспертами обсудим вопросы обучения языку С++.

Евгений Захаров Wargaming
Евгений Захаров
Wargaming 
День 4 / 18:30  / Зал 4 / RU /

ECS в UI — правда или вымысел?

Алексей Ткаченко Пеленг
Алексей Ткаченко
Пеленг 
День 4 / 17:15  / Зал 3 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Имитация регистровых интерфейсов в embedded с помощью исключений

Алексей расскажет о некоторых необычных применениях методов защиты, реализованных в MMU, а именно о способах имитации взаимодействия аппаратного обеспечения с центральным процессором через регистровые файлы.

Юрий Сыровецкий Яндекс
Юрий Сыровецкий
Яндекс 
День 4 / 17:15  / Зал 2 / RU / Введение в технологию

Нечёткое тестирование для чётких программистов

В этом докладе вас ждет разбор случайного тестирования, фаззинг, тестирование свойств, и их применение в KasperskyOS.

Юлия Головчанская Системы компьютерного зрения
Юлия Головчанская
Системы компьютерного зрения 
День 4 / 17:00  / Зал 2 / RU /

Открытие

Евгений Захаров Wargaming
Евгений Захаров
Wargaming 
День 4 / 18:30  / Зал 1 / RU /

ECS в UI — правда или вымысел?

Антон Бикинеев Google
Антон Бикинеев
Google 
День 1 / 12:30  / Зал 1 / RU /

Use-After-Free Busters: C++ Garbage Collector in Chrome

В докладе Антон расскажет о том, как такой большой проект c десятками миллионов строк кода, как браузер Chrome борется с проблемами управления памяти, об автоматической сборке мусора — теме, которая оставалась спорной на всем протяжении существования языка.