Start of main content
2 offline days
May 23–24 10:00–19:30 (UTC+3)
Offline: Red October, Start Hub, Bersenevskaya emb., 6, building 3, Moscow, Russian Federation
Online broadcast
Why It’s Worth Going
- To see old friends. To discuss current problems. To come up with new ideas. To debate and just chat.
Switch the format to offline
To have a change of scenery, to distract and have a good time. To gain fresh impressions and new acquaintances.
Broadcast
There will be a broadcast on the offline part of the conference, which is available to participants with any ticket. If you want to meet and interact with the speakers and other participants live, we are waiting for you at the venue. And if you are not ready to get to the venue, recordings of all the talks and activities will be waiting for you on this website.
See for yourself
Program
May 23
- Watch recording
Talk type: Conversation
C++ Russia 2023 in-person opening
We will talk about the schedule, sessions, and share the information. Come to the room or join the broadcast to find out what to expect soon!
Pavel Filonov
Company: Independent consultant
- Watch recording
Talk type: Talk
C++ Tricks from Userver
Anton will talk about new C++ tricks and techniques. You will learn about: LazyPrvalue; ODR violation detection from C++ code; FixedArray; "the funniest
bimap
". The latest trick with "the funniestbimap
" has already been discussed in the C++ Russia conference chat. The talk details both the background and the final results with benchmarks. Ready-to-use code from the talk is already available at https://userver.tech/Anton Polukhin
Company: Yandex Go
- Watch recording
Talk type: Talk
Back to Basics: Lock-free
Marcel will talk about the standard ways of working in multi-threaded environment (mutexes, compare and swap, hazard pointer) and the algorithm of taking a snapshot of two atomic "registers". The talk will be useful for newcomers to multithreading and for experienced developers who want to dust off already rusty knowledge.
Marsel Galimullin
Company: Yandex
- Watch recording
Talk type: Talk
Fastest Possible and the Most Flexible С++ Msgpack Codec
Alexander will tell you about the C++ implementation of msgpack codec which uses a lot of C++ features, allowing you to pack and unpack completely abstract types, including in compile time, without dynamic memory allocation, zero-copy (or once-copy?) and as branchless as possible.
Aleksander Lyapunov
Company: VK
- Watch recording
Talk type: Talk
Semantic Processes in C++
The talk describes the interacting semantic processes in C++, both from the point of view of the compiler internals and from the point of view of the language standard.
Konstantin Vladimirov
Company: Syntacore
- Watch recording
Talk type: Talk
Software Production through the Eyes of a Developer and Manager
Many of us are engaged in software development, being in a kind of project process. Alexander will talk about the variants of such projects and the role of the developer in these processes. He will touch upon the problem of technical debt: where it comes from and why it doesn't disappear. The talk will discuss what a developer can influence in the production process and what he cannot usually reach. We will definitely consider the peculiarities of C++ development in project activities.
Alexander Bychuk
Company: VK Tech
- Watch recording
Talk type: Talk
LCC Compiler and Code Merge Optimization
Elbrus as an architecture is very different from mainstream processor architectures. As a consequence, it requires some special optimizations from the compiler. Victor will briefly describe the peculiarities of Elbrus and its special optimizations in the LCC compiler. In more detail, he will talk about the code merge optimization: what it is, why it is needed, and how it works.
Viktor Shamparov
Company: MCST
- Watch recording
Talk type: Partner’s talk
Pumping LLDBs, or LLDB formatters
Have you ever had to deploy load of nested constructs inside
std::variant
after every F10? What if you need to debug on Linux and don't have Visual Studio? How to solve some of these problems using the open source LLDB debugger API? Oleg offers to discuss this as part of his TechTalk.Oleg Lysyy
Company: PVS-Studio
- Watch recording
Talk type: Talk
An Idea on Improving Multithreaded Code
Alexander will describe an approach to writing multithreaded code which helps to avoid typical errors related to using basic synchronization primitives. The idea will be demonstrated with live code examples in modern C++.
Alexander Kornilov
Company: Kaspersky Lab
- Watch recording
Talk type: Talk
Monitoring FSM in Embedded Software
Let's see how to annotate finite state machine code with comments and look at the graph in Doxygen.
Anton Lastochkin
Company: Kronshtadt
- Watch recording
Talk type: Talk
flat_map. Who Needs Them? They're Just Like std::map. We All Have Them
The speaker will compare
flat_map
with existing standard associative containers, look at popular existing implementations offlat_map
and what is proposed to be added to the standard C++ library, and finally share conclusions about what kind offlat_map
we want to have in C++. After the talk, you will have a good understanding of whatflat_map
is and in what situations it should be used. - Watch recording
Talk type: Talk
Source Code: Hidden Knowledge and How to Show It?
The talk is devoted to the problem of deep analysis of the semantics of programs represented in the source code and visual (easy to perceive) display of knowledge about its semantics. A number of approaches and technologies aimed at extraction and visualization of knowledge about the semantics of programs, including "hidden semantics", as well as the general architecture of software systems are proposed.
Alexey Stepanov
Company: Innopolis University
Evgeny Zouev
Company: Innopolis University
- Watch recording
Talk type: Talk
Speeding Up Synthesis: From TensorRT to CUDA C++
A talk about the CUDA C++ tool, which allows you to get the most out of the hardware you use.
Artyom Khoroshev
Company: SberDevices
- Watch recording
Talk type: Talk
B-tree Indexes in Databases Using SQLite and PostgreSQL as Examples
Vladimir will speak about the work of conventional™ indexes in databases and will tell: how the index speeds up the search; whether to index conditions
where
; whether to index conditions inorder by
; whether to indexforeign keys
; what to do if there are several search criteria; in what order to specify columns in the index; when the index is slow and how to reduce the impact of the index on the application. - Watch recording
Talk type: Talk
C++ Experiments: The Battle Continues: Cpp2 vs Carbon
Despite the Committee's work on the new language standards, it seems that some invariants cannot be revised, and activists are working in creating their own languages compatible with C++. You will dive back into the design in order to try to answer the question: why? What is so new proposed and what might be missing in C++?
Alexander Enaldiev
Company: Kaspersky Lab
- Watch recording
Talk type: Talk
YsonStruct: Lightweight Serialization for Hierarchical JSON Structures
Yandex presents the library that allows to implement JSON serializable structures in C++. In his talk Ivan will speak about high-level design of the library; technical difficulties in implementation (behavior of virtual methods, linking of template classes, etc.); experience in implementing the library in a large code base; attempts to make a good interface.
Ivan Smirnov
Company: Yandex
- Watch recording
Talk type: Talk
Secure C++: Is It Really That Bad?
Not so long ago, the National Security Agency (NSA) published a guide declaring C/C++ "dangerous" and requiring a transition to "safe" C#, Go, Java, Ruby, and Swift. Sergey will analyze this document in detail and tell if the security situation in C++ is really that bad, and what the modern industry offers to solve this issue.
Sergey Talantov
Company: Kaspersky Lab
- Watch recording
Talk type: Talk
GPU usage best practice from gamedev
The talk describes the general points of analysis and effective use of modern GPU on the example of computer games. Profiling and optimization for the GPU. A breakdown of techniques from gamedev to improve performance.
Rostislav Mikheev
Company: Elverils
- Watch recording
Talk type: Talk
nocc, a Distributed C++ Compiler: Like distcc, but Faster
Aleksandr will propose a distributed C++ compiler — nocc. It's like distcc, but faster. It's like ccache, but remote.
Aleksandr Kirsanov
Company: VK
- No record
Talk type: Talk
Lightning Talks
Have you long wanted to try your hand as a speaker? Can't wait to share your ideas and case studies with the world? Have you seen the C++ Russia talks and feel you can add something of your own to the talks? Then submit an application in advance or sign up for a talk right on the floor!
Vitaly Aksenov
Company: ITMO University
- No record
Talk type: BOF-session
About C++ teaching at University
How to start teaching a programming? Which programming language is better to start? How is easier to move to C++? What is important to teach, what is necessary?
Konstantin Vladimirov
Company: Syntacore
Peter Sovietov
Company: RTU MIREA
Pavel Filonov
Company: Independent consultant
Marina Vasileva
Company: MIIT
- No record
Talk type: BOF-session
Current Problems of GPGPU Development
We will talk about modern GPGPU platforms: CUDA, OpenCL, SYCL, oneAPI and others. We will discuss video card manufacturers and development trends. We will figure out what tasks are worth using GPGPU, and what tasks are not. Share our life stories and show that GPGPU development is nothing to be afraid of.
Timur Magomedov
Company: KT — Unmanned Systems
Mikhail Lukin
Company: Sudo
May 24
- Watch recording
Talk type: Talk
GPU Driven Rendering Pipeline, or How Graphics are Written in Modern Video Games
A story about how Graphics APIs are used in modern engines and how the pipeline moves from CPU to GPU.
Eugene Grigorchuk
Company: Elverils
- Watch recording
Talk type: Talk
How to Write Comparators Correctly
The talk discusses various mistakes when writing comparison functions (comparators) in API like
std::sort
— their consequences and the means of detecting them provided by modern toolchains. - Watch recording
Talk type: Talk
Programming Automation in the USSR. Translators (60-70s)
A sequel to the talk on programming automation in the USSR. This time we will talk about the Soviet translators created in the 60-70s. The presentation concentrates on simple and actual even today algorithms. The central theme of the talk is the problem of register allocation. What do the developments of the Soviet compiler school and LLVM with SSA and instruction scheduling for modern processors have in common?
Peter Sovietov
Company: RTU MIREA
- Watch recording
Talk type: Talk
Back Deep to Basics: Inheritance and Virtualization in C++ (Part 1)
Inheritance, virtual functions, v-tables, virtual inheritance — things that are painfully familiar to every C++ developer. These things directly affect performance, the size of our binaries, and sometimes the security of our code. So let's go back to the beginning and understand the details of this machine. Let's look at what's new in this area and how it works under the hood.
Evgeny Erokhin
Company: Kaspersky Lab
- Watch recording
Talk type: Talk
Dynamic Libraries for Bare Metal
Everyone is used to dynamically loaded libraries in large operating systems: it saves the size of the executable and allows updating only the necessary components. However, in bare metal development it is not so popular and widespread. Anton will talk about his experience in this area and discuss the pros and cons of this approach.
Anton Sysoev
Company: Independent developer
- Watch recording
Talk type: Talk
The Practice of Tensor Kernel Programming
It is hard to overestimate the influence of tensor kernels on the development of neural networks in our world. In this talk we will look under the hood of linear algebra libraries, on the basis of which neural network training works.
Mikhail Lukin
Company: Sudo
- Watch recording
Talk type: Talk
Something's Lagging: Looking Inside C++ Containers
Let's go back to the basics and consider what asymptotics the various C++ container operations have and why exactly. At the end, we will discuss general guidelines: which container to use and when to use it.
Ilya Shishkov
Company: Yandex
- Watch recording
Talk type: Talk
Customizing ASIO
ASIO allows you to use
std::future
out of the box to handle asynchronous events. But what if you want to use your own implementation offuture
? Ilya will tell and show you how to do it. At the same time, he will talk about customization below, on the example of io_uring.Ilya Kazakov
Company: Yadro
- Watch recording
Talk type: Talk
Bazel Experience
Evgenii will share his experience of using Bazel for two projects. In the first project, he used it as a C++/Python developer. In the second project, at Kaspersky Lab, he's part of the team that migrates the code base from CMake to Bazel. He will talk about the killer features of this build system — its advantages and disadvantages.
Evgenii Oparin
Company: Kaspersky Lab
- Watch recording
Talk type: Talk
Structured Concurrency in C++: Theory and Practice
There's a new model in development for asynchronous computations in C++26 —
std::execution
, also known as Senders/Receivers. The talk is about the problems this model solves and the solutions it presents, and how it can be used in C++17 with libunifex library.Ernest Asanov
Company: VK
- Watch recording
Talk type: Talk
That Stand-up by Pavel Filonov
There were some minor adjustments to the conference program and, unexpectedly, Pavel Filonov gave an improvised standup performance.
Pavel Filonov
Company: Independent consultant
- Watch recording
Talk type: Talk
Secure Compiler: Reliable Optimization and Improved Code Security
Dmitriy will show examples of code with different types of undefined behavior, as well as unobvious effects of its optimization with modern versions of GCC and Clang. He will also showcase a GCC-based safe compiler they have developed to prevent incorrect optimizations of code containing undefined behavior. In addition, the speaker will talk about other methods of improving code safety, both in the safe compiler and in the standard GCC, and their impact on performance.
Dmitry Melnik
Company: ISP RAS
- Watch recording
Talk type: Talk
Roren — C++ Framework for Describing Distributed Computing Pipelines
A huge amount of C++ code in Yandex can be described by the words "distributed computing". The talk is devoted to the C++ framework, which is actively being developed now, inspired by
std::ranges
and Apache Beam libraries. This framework allows rather compact and simple description of such processes and running them in MapReduce mode to process data tables or in real-time mode to process endless streams (queues) of data.Dmitry Ermolov
Company: Yandex
- Watch recording
Talk type: Talk
Sizecoding: A Look from the Inside
Let's talk about what sizecoding is and how it differs from classical programming. Let's discuss several algorithms for specific demo effects and their implementation. We will study programming tricks that allow to fit into a given amount of executable code.
Oleg Senin
Company: Yandex
- Watch recording
Talk type: Talk
Performance Optimization Techniques
Maxim will tell you a lot of practical things about performance optimization. What tools are worth using to find places for optimizations. How not to make a mistake when testing performance. How to correctly select and test algorithms and data structures. In the talk there will be a lot of examples from practice.
Maksim Kita
Company: Yandex
- Watch recording
Talk type: Conversation
C++ Russia 2023 closing
We summarize the results of the C++ Russia conference, recall the highlights, and tell you about our future plans. Come in the hall or join the broadcast to make sure you don't miss anything!
Pavel Filonov
Company: Independent consultant
Discussions
Live conversation with speakers between activities. No recording and no time limit.BoF
Informal conversations without hosts or speakers. This is where new ideas are born.Round tables
Speakers and experts discuss current industry issues.
Bonus
Coffee and lunch breaks
Buffet and beverages of your choosing. If you have food restrictions, write to our support team. We’ll find a solution.Networking and Afterparty
Informal atmosphere, networking for all participants, speakers, and experts. Heart-to-heart talks and an afterparty at the end of the first offline day.
FAQ
Where will the offline part of the conference be held?
Offline part will be held on May 23–24 at the following address: Red October, Start Hub: Bersenevskaya emb., 6, building 3, Moscow, Russian Federation.When will the program and time for the offline part of the conference be known?
We begin publishing the program in batches on the conference website one month in advance.What activities will be included on the offline part of the conference?
There will be on the offline part:
- talks;
- roundtables;
- BoF-sessions: meetings of interest without a scheduled schedule;
- discussions with offline and online speakers who will come to the site;
- Afterparty for participants at the end of the first offline day.
Will there be an online broadcast of the offline part of the conference?
We will broadcast live most of the activities of the offline part: talks, roundtables, etc.
Discussions and BoF-sessions will not be broadcast or recorded.
Offline was so long ago that I no longer remember what the procedure was for offline conferences.
Don’t worry, before the conference we will send you a participant’s memo. It will contain all the necessary information.Can I buy a ticket only for the offline part of the conference?
To attend the offline part, you must purchase an ONLINE + OFFLINE ticket. It entitles you to attend the offline part of the conference and lifetime access to the recordings of the online part.How do I get into offline part if I have a ONLINE ticket?
If you already have a ticket for the online part of the conference, you can upgrade it to ONLINE + OFFLINE. To do so, email our support team at support@cppconf.ruHow do I get to the offline part if the company only paid for my ONLINE ticket?
If the company that paid for your ticket is not willing to upgrade to ONLINE + OFFLINE, you can do it yourself at a discount. The discount is given for taking the survey after the online part of the conference ends.Is there a limit to the number of tickets for the offline part?
The number of tickets is limited to the capacity of the conference venue.
So it is better to buy tickets in advance while they are available.
Are there any restrictions on going to an offline conference?
There will be no COVID restrictions on site visits. You don’t need QR codes or PCR tests to enter the venue. For your safety a qualified medical worker is constantly on duty at the site.
However, if you’re feeling unwell, it’s best to refrain from going offline. You will be able to participate in the offline part remotely or watch the performances in the recording.