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

John Lakos Bloomberg LP
John Lakos
Bloomberg LP 
День 2 / 17:30  / Зал 1 / 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 
День 2 / 18:50  / Зал 1 / 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 
День 1 / 17:00  / Зал 1 / RU /

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

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

Timur Doumler audio++
Timur Doumler
audio++ 
День 1 / 13:45  / Зал 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 / 11:00  / Зал 1 / 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 
День 2 / 14:15  / Зал 1 / RU /

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

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

Guy Davidson Creative Assembly
Guy Davidson
Creative Assembly 
День 2 / 12:30  / Зал 2 / 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 
День 2 / 16:00  / Зал 1 / 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:30  / Зал 1 / RU /

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

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

Danila Kutenin Google
Danila Kutenin
Google 
День 1 / 12:00  / Зал 2 / 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.

Sergey Nepomnyachiy Bloomberg L.P.
Sergey Nepomnyachiy
Bloomberg L.P. 
День 1 / 15:30  / Зал 1 / EN /

Applying the "hourglass" principle in library design

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

JeanHeyd Meneide Shepherd's Oasis
JeanHeyd Meneide
Shepherd's Oasis 
День 2 / 14:15  / Зал 2 / EN /

Burning Silicon: Speed for transcoding in C++23

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

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

Applying GNU GCC Address Sanitizer to whole Linux distribution

The talk describes experience in integration of ASan technology into large-scale software products: Tizen distribution.

Алексей Веселовский Align Technology
Алексей Веселовский
Align Technology 
День 1 / 12:00  / Зал 1 / RU /

Анатомия AddressSanitizer

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

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

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

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

Юрий Сыровецкий Лаборатория Касперского
Юрий Сыровецкий
Лаборатория Касперского 
День 2 / 17:30  / Зал 3 / RU /

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

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

Денис Кормалев Amazon Robotics
Денис Кормалев
Amazon Robotics 
День 1 / 13:45  / Зал 3 / RU /

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

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

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

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

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

Руслан Манаев Яндекс
Руслан Манаев
Яндекс 
День 2 / 16:00  / Зал 2 / RU /

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

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

Михаил Матросов Align Technology
Михаил Матросов
Align Technology 
День 2 / 12:30  / Зал 1 / RU /

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

В докладе мы вспомним всю релевантную теорию: linkage и storage duration, объявление и определение, спецификаторы static, inline, extern и constexpr и их комбинации. Увидим, какие последствия имеет тот или иной способ объявления константы. В итоге мы сформулируем универсальные рекомендации на все случаи жизни.

Павел Новиков Align Technology
Павел Новиков
Align Technology 
День 1 / 10:30  / Зал 3 / RU /

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

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

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

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

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

Jason McGuiness Count-Zero Ltd
Jason McGuiness
Count-Zero Ltd 
День 2 / 16:00  / Зал 3 / 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.

Иван Афанасьев Align Technology
Иван Афанасьев
Align Technology 
День 1 / 15:30  / Зал 3 / RU /

std::to_string faster than light

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

Антон Квятковский Dins
Антон Квятковский
Dins 
День 1 / 12:00  / Зал 3 / RU /

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

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

Evgeny Pats Fuzzit
Evgeny Pats
Fuzzit 
День 1 / 15:30  / Зал 2 / 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.

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

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

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