Talks C++ Russia 2021 Piter

Sergey Platonov gapfruit
Sergey Platonov
gapfruit 
RU /

Genode for C++ developers — the framework for creating operating systems

Sergey will introduce you to Genode, an open-source framework for creating operating systems.

Titus Winters Google
Titus Winters
Google 
EN /

Designing for the long term: Invariants, knobs, extensions, and Hyrum's Law

This talk will address some of the basic ways that design and invariants interact with long-term maintenance and optimization, and some heuristics for deciding whether adding a knob will turn out to be a mistake.

Andrey Davydov JetBrains
Andrey Davydov
JetBrains 
RU /

Background tasks: Resource management and cancellation

This talk is about the analysis of one problem that is often encountered in practice — the removal of a heavy operation from a UI thread. Another nontrivial part of working with background operations is the implementation of cancellation. We will take a look at how it all can be written one by one, with three main mechanisms of asynchronous programming.

Phil Nash SonarSource
Phil Nash
SonarSource 
EN /

Zen and the art of code lifecycle maintenance

What is Software Quality, and how do we improve it? We look at a set of related principles and practices that help us get there, and along the way define what Quality actually is.

Denis Yaroshevskiy Bloomberg
Denis Yaroshevskiy
Bloomberg 
RU /

EVE: A new, powerful open source C++20 SIMD library

Denis will tell you about the new C++ 20 library for working with SIMD — EVE and advise you on how to include it in your project.

Alexey Veselovsky Align Technology
Alexey Veselovsky
Align Technology 
RU /

ThreadSanitizer anatomy

Last time Alexey analyzed in detail the internal structure of ASan, now it's his turn to tell how TSan works, what is under the hood, what he can and what he cannot.

Pavel Kosov Huawei
Pavel Kosov
Huawei 
RU /

PGO: How it works and how to use it properly

Profile-guided optimization is a powerful technique that can improve application performance. In this talk, we'll understand how this technique works, how to customize it, and how to gain maximum profit from it.

Anton Polukhin Yandex Go
Anton Polukhin
Yandex Go 
RU /

Anatomy of asynchronous engines

In the last years, asynchronous engines with coroutines are gaining popularity in almost all programming languages. Let's look at how these engines work and what's good about them for I/O-bound applications.

Sebastian Theophil think-cell
Sebastian Theophil
think-cell 
EN /

Typescripten — generating type-safe JavaScript bindings for emscripten

WebAssembly has become a very popular target platform for C++ developers. However, emscripten does not provide type-safe wrappers to the standard JavaScript APIs. Open source tool "typescripten" has been built on top of three powerful technologies to close this gap, but it easy to say than do, as usually. Sebastian will discuss the challenges we faced and the choices we made when designing this framework.

Pavel Novikov Align Technology
Pavel Novikov
Align Technology 
RU /

Fun with type erasure + dispatching data from abstract structure to function parameters

Sometimes we want some kind of magic that would call the appropriate handler for a request, and put appropriate request fields into function parameters. We want this magic more when the number of handlers with many parameters grows significantly. In this talk, we will concentrate on type erasure to make a convenient and user-friendly way of organizing request handlers.