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
Day 4 / 19:00  / Track 3 / 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
Day 3 / 10:30  / Track 4 / 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 1 / 12:30  / 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
Day 3 / 10:30  / 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 3 / 12:30  / Track 3 / 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
Antony Polukhin Yandex.Taxi
Antony Polukhin
Day 1 / 10:30  / 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.

Adi Shavit Consultant
Adi Shavit
Day 1 / 12:30  / Track 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.

Danila Kutenin Google
Danila Kutenin
Day 2 / 17:00  / Track 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.

Ruslan Manaev Yandex
Ruslan Manaev
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.

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 Milovidov Yandex
Alexey Milovidov
Day 3 / 12:30  / Track 4 / 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.

Evgeny Pats Fuzzit
Evgeny Pats
Day 1 / 10:30  / 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.

Mikhail Kashkarov Samsung R&D Russia
Mikhail Kashkarov
Samsung R&D Russia 
Day 1 / 12:30  / Track 4 / 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.

Mikhail Matrosov Align Technology
Mikhail Matrosov
Align Technology 
Day 3 / 12:30  / Track 1 / RU /

How to declare a constant in C++?

In this talk we will recall all relevant theory: linkage и storage duration, declaration and definition, static, inline, extern и constexpr and their combinations. We will see what consequences have a constant declaring. As a result, we will sum up universal recommendations for all occasions.

Aleksandr Granin
Aleksandr Granin
Day 4 / 17:00  / Track 3 / 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.

Ivan Afanasyev Align Technology
Ivan Afanasyev
Align Technology 
Day 1 / 10:30  / 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.

Yuriy Syrovetskiy Yandex
Yuriy Syrovetskiy
Day 4 / 17:00  / 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.

Anton Kvyatkovsky Dins
Anton Kvyatkovsky
Day 3 / 10:30  / Track 2 / RU /

Type loopholes in C++: Standard level bug

We will write stateful programs at compile time.

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

Q&A with Herb Sutter

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

Q&A with Bjarne Stroustrup

Denis Kormalev Amazon Robotics
Denis Kormalev
Amazon Robotics 
Day 2 / 17:00  / Track 4 / 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.

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

Jason McGuiness Count-Zero Ltd
Jason McGuiness
Count-Zero Ltd 
Day 1 / 12:30  / Track 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.

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.

Vadim Vinnik SolarWinds MSP
Vadim Vinnik
SolarWinds MSP 
Day 3 / 10:30  / Track 3 / 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.

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

Embedded registers interfaces mocking with hardware 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.