Talks C++ Russia 2020 Moscow

John Lakos Bloomberg LP
John Lakos
Bloomberg LP 
Day 2 / 19:00  / Track 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 
Day 4 / 19:00  / Track 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.

Anastasia Kazakova JetBrains
Anastasia Kazakova
JetBrains 
Day 3 / 12:30  / Track 1 / RU / Введение в технологию

C++ ecosystem: The Renaissance edition

In this talk, we will overview the C++ ecosystem based on several independently conducted research studies (the most recent will be held at the beginning of 2020), identify the common aligning trends across all the sources, and analyze the reasoning behind them. We’ll also decompose the C++ development into top areas and will analyze C++ usage projected on them.

Mateusz Pusz EPAM Systems
Mateusz Pusz
EPAM Systems 
Day 2 / 17:15  / Track 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++.

Elena Stepanova Nokia
Elena Stepanova
Nokia 
Day 3 / 10:45  / Track 1 / RU / Для практикующих инженеров

How to update the compiler and keep sane

What you will have to face when updating the compiler, and how to make this process less painful. Examples for gcc.

Guy Davidson Creative Assembly
Guy Davidson
Creative Assembly 
Day 2 / 17:15  / Track 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.

Roman Rusyaev Samsung
Roman Rusyaev
Samsung 
Antony Polukhin Yandex.Taxi
Antony Polukhin
Yandex.Taxi 
Day 1 / 10:45  / Track 1 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Present and future of copy elision

Anton and Roman will talk about new proposal in the Standard — ultimate copy elision and show how it will improve the life of C++ developers.

Danila Kutenin Google
Danila Kutenin
Google 
Day 3 / 12:30  / Track 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.

Evgeny Zaharov Wargaming
Evgeny Zaharov
Wargaming 
Day 4 / 18:30  / Track 1 / RU /

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

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
Day 4 / 17:00  / Track 2 / RU /

Conference opening

Yuriy Syrovetskiy Yandex
Yuriy Syrovetskiy
Yandex 
Day 4 / 17:15  / Track 2 / RU / Введение в технологию

Fuzzy testing for bright programmers

In this talk you will find an analysis of random testing, fuzzing and property testing, and also their use in KasperskyOS.

Vyacheslav Borilin Kaspersky Lab
Vyacheslav Borilin
Kaspersky Lab 
Day 1 / 12:00  / Track 1 / RU /

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

Vyacheslav Borilin Kaspersky Lab
Vyacheslav Borilin
Kaspersky Lab 
Day 1 / 12:00  / Track 2 / RU /

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

C++ Russia team
C++ Russia team
 
Day 4 / 17:15  / Track 1 / RU /

Panel session: Learning C++

Herb Sutter Microsoft
Herb Sutter
Microsoft 
Day 4 / 19:00  / Track 1 / EN /

Interview and Q&A with Herb Sutter

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 4 / 17:00  / Track 3 / RU /

Conference opening

Evgeny Zaharov Wargaming
Evgeny Zaharov
Wargaming 
Day 4 / 18:30  / Track 3 / RU /

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

Sergey Nepomnyachiy Bloomberg L.P.
Sergey Nepomnyachiy
Bloomberg L.P. 
Day 3 / 12:30  / Track 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.

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

Understanding C++ coroutines by example

Pavel will tell in detail how exactly C++ coroutines work, and what do we need to do to start using them easily and efficiently.

Evgeny Pats GitLab (Previously Fuzzit)
Evgeny Pats
GitLab (Previously Fuzzit) 
Day 1 / 10:45  / Track 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.

Jason McGuiness Count-Zero Ltd
Jason McGuiness
Count-Zero Ltd 
Day 1 / 12:30  / Track 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 Erokhin DINS
Evgeny Erokhin
DINS 
Day 3 / 10:45  / Track 4 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Thread Local in C++ as it is

This talk is devoted to such a seemingly well-established feature of C++ as thread_local. Despite that this feature was standardized in C++11, not a lot of people understand what machinery is under the hood. How and in what cases we have this functionality for free. And in which cases heavy artillery used.

Ivan Afanasyev Align Technology
Ivan Afanasyev
Align Technology 
Day 1 / 10:45  / Track 4 / RU / Для практикующих инженеров

std::to_string faster than light

Talk is about several ways to speedup std::to_string of integers in libc++ standard library. Allocations optimization, naive approach, and std::to_chars are considered. We will take the careful investigation of why each algorithm is faster than the previous one with profiling results and performance tricks explanation.

Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 3 / 10:45  / Track 3 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Type loopholes in C++: Standard level bug

We will write stateful programs at compile time.

Alexey Veselovsky Align Technology
Alexey Veselovsky
Align Technology 
Day 2 / 19:00  / Track 4 / RU / Для практикующих инженеров

AddressSanitizer anatomy

Alexey will tell about one of the main parts of modern C++ development — sanitizers and will share all secrets of working with AddressSanitizer.

Denis Kormalev Amazon Robotics
Denis Kormalev
Amazon Robotics 
Day 2 / 17:15  / Track 3 / RU / Для практикующих инженеров

DIY: Homemade Thread Pool

The C++ Standard Library lacks a thread pool mechanism and it is not always convenient to use Boost, TBB or Qt for these purposes. This talk is about creating your own thread pool step by step without any dependencies except C++17.

Ruslan Manaev Yandex
Ruslan Manaev
Yandex 
Day 2 / 19:00  / Track 1 / RU / Для практикующих инженеров

Reflection of the present and the future

Ruslan will demonstrate the difference between static and dynamic reflection and also introduce us to syntactic constructions from the P1717 proposal to the C ++ standard and with its implementation.

Vadim Vinnik SolarWinds MSP
Vadim Vinnik
SolarWinds MSP 
Day 1 / 12:30  / Track 1 / RU / Для практикующих инженеров

Three etudes on bufferisation

The talk presents solutions for three tasks taken from practice and have two common features: values used from several threads are passed through intermediate storage and solutions are mage general and can be tailored to various specific cases.

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 4 / 17:00  / Track 3 / RU /

Conference opening

Mikhail Kashkarov Samsung R&D Russia
Mikhail Kashkarov
Samsung R&D Russia 
Day 1 / 12:30  / Track 3 / RU / Для практикующих инженеров

Applying sanitizers to whole Linux distribution

During this session you will learn about the experience of implementing various sanitizers in large-scale Linux-based projects with subsequent support.

Aleksandr Granin
Aleksandr Granin
 
Day 1 / 12:30  / Track 4 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Like in Haskell: Final Tagless and eDSL on concepts

In this talk we will implement a design approach from Haskell, better known as Final Tagless. We will look at what it is and how Final Tagless can be expressed using concepts. We will build the simple eDSL on FT and discuss its properties.

Alexey Milovidov Yandex
Alexey Milovidov
Yandex 
Day 3 / 12:30  / Track 2 / RU / Для практикующих инженеров

How to build portable binaries for Linux

Software for Linux is often distributed assembled for a specific version of a certain system. That's because under other systems the same binary will not launch. You built the program on your machine, do SCP on a server, but it doesn't start on the server. How to solve this problem? There are a lot of alternative ways and Alexey will tell about each of them.

Mikhail Matrosov Align Technology
Mikhail Matrosov
Align Technology 
Day 3 / 10:45  / Track 2 / RU / Для практикующих инженеров

How to declare a constant in C++?

In this talk, we will understand how to choose static, inline and constexpr specifiers when declaring a constant. We will compare different ways to declare string constants. As a result, we will come up with universal recommendations.

Evgeny Zaharov Wargaming
Evgeny Zaharov
Wargaming 
Day 4 / 18:30  / Track 4 / RU /

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

Andrey Karpov PVS-Studio
Andrey Karpov
PVS-Studio 
Day 3 / 12:00  / Track 4 / RU /

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

Andrey Karpov PVS-Studio
Andrey Karpov
PVS-Studio 
Day 3 / 12:00  / Track 2 / RU /

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

Sergey Kozlov Kaspersky Lab
Sergey Kozlov
Kaspersky Lab 
Evgeny Alekseev Kaspersky Lab
Evgeny Alekseev
Kaspersky Lab 
Day 3 / 12:00  / Track 3 / RU /

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

Sergey Kozlov Kaspersky Lab
Sergey Kozlov
Kaspersky Lab 
Evgeny Alekseev Kaspersky Lab
Evgeny Alekseev
Kaspersky Lab 
Day 3 / 12:00  / Track 1 / RU /

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

Kirill Tolkachev JUG Ru Group
Kirill Tolkachev
JUG Ru Group 
Day 3 / 13:45  / Track 4 / RU /

Conference closing

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
RU /

Conference closing

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
Day 3 / 13:45  / Track 2 / RU /

Conference closing

Vyacheslav Borilin Kaspersky Lab
Vyacheslav Borilin
Kaspersky Lab 
Day 1 / 12:00  / Track 3 / RU /

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

Kirill Tolkachev JUG Ru Group
Kirill Tolkachev
JUG Ru Group 
Day 3 / 10:30  / Track 4 / RU /

Conference opening

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 3 / 10:30  / Track 3 / RU /

Conference opening

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
Day 3 / 10:30  / Track 2 / RU /

Conference opening

Vyacheslav Borilin Kaspersky Lab
Vyacheslav Borilin
Kaspersky Lab 
Day 1 / 12:00  / Track 4 / RU /

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

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

Burning Silicon: Speed for transcoding in C++23

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

Alexey Tkachenko Peleng
Alexey Tkachenko
Peleng 
Day 4 / 17:15  / Track 3 / RU / Хардкор. Сложный низкоуровневый доклад, требующий от слушателя знаний технологии.

Embedded registers interfaces mocking with exeptions

Alexey will tell about some unusual applications of protection methods implemented in the MMU, ways to stimulate the interaction of hardware with the central processor through register files.

Evgeny Strokov Wargaming
Evgeny Strokov
Wargaming 
Day 2 / 18:45  / Track 2 / RU /

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

Evgeny Strokov Wargaming
Evgeny Strokov
Wargaming 
Day 2 / 18:45  / Track 3 / RU /

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

Evgeny Strokov Wargaming
Evgeny Strokov
Wargaming 
Day 2 / 18:45  / Track 4 / RU /

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

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

Evgeny Strokov Wargaming
Evgeny Strokov
Wargaming 
Day 2 / 18:45  / Track 1 / RU /

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

Maksim Zvyagintsev PVS-Studio
Maksim Zvyagintsev
PVS-Studio 
Day 2 / 18:30  / Track 2 / RU /

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

Maksim Zvyagintsev PVS-Studio
Maksim Zvyagintsev
PVS-Studio 
Day 2 / 18:30  / Track 3 / RU /

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

Maksim Zvyagintsev PVS-Studio
Maksim Zvyagintsev
PVS-Studio 
Day 2 / 18:30  / Track 4 / RU /

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

Maksim Zvyagintsev PVS-Studio
Maksim Zvyagintsev
PVS-Studio 
Day 2 / 18:30  / Track 1 / RU /

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

Bjarne Stroustrup Morgan Stanley
Bjarne Stroustrup
Morgan Stanley 
Day 2 / 17:15  / Track 1 / EN /

Interview and Q&A with Bjarne Stroustrup

Kirill Tolkachev JUG Ru Group
Kirill Tolkachev
JUG Ru Group 
Day 2 / 20:15  / Track 4 / RU /

Conference closing

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 2 / 20:15  / Track 3 / RU /

Conference closing

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
Day 2 / 20:15  / Track 2 / RU /

Conference closing

Georgiy  Gribkov PVS-Studio
Georgiy Gribkov
PVS-Studio 
Day 1 / 12:15  / Track 1 / RU /

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

Kirill Tolkachev JUG Ru Group
Kirill Tolkachev
JUG Ru Group 
Day 2 / 17:00  / Track 4 / RU /

Conference opening

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 2 / 17:00  / Track 3 / RU /

Conference opening

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
Day 2 / 17:00  / Track 2 / RU /

Conference opening

Georgiy  Gribkov PVS-Studio
Georgiy Gribkov
PVS-Studio 
Day 1 / 12:15  / Track 4 / RU /

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

Kirill Tolkachev JUG Ru Group
Kirill Tolkachev
JUG Ru Group 
Day 1 / 13:45  / Track 4 / RU /

Conference closing

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 1 / 13:45  / Track 3 / RU /

Conference closing

Yulia Golovchanskaya Computer Vision Systems
Yulia Golovchanskaya
Computer Vision Systems 
Day 1 / 13:45  / Track 2 / RU /

Conference closing

Georgiy  Gribkov PVS-Studio
Georgiy Gribkov
PVS-Studio 
Day 1 / 12:15  / Track 3 / RU /

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

Georgiy  Gribkov PVS-Studio
Georgiy Gribkov
PVS-Studio 
Day 1 / 12:15  / Track 2 / RU /

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

Kirill Tikhonov DINS
Kirill Tikhonov
DINS 
Anton Kvyatkovsky DINS
Anton Kvyatkovsky
DINS 
Day 3 / 13:45  / Track 3 / RU /

Conference closing

Evgeny Zaharov Wargaming
Evgeny Zaharov
Wargaming 
Day 4 / 18:30  / Track 2 / RU /

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