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

  • Talk in person

    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.

Program

  1. May 23

    • 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 funniest bimap"  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/

    • 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.

    • 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.

    • 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.

    • 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.

    • 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.

    • 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 of flat_map and what is proposed to be added to the standard C++ library, and finally share conclusions about what kind of flat_map we want to have in C++. After the talk, you will have a good understanding of what flat_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.

    • 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 in order by; whether to index foreign 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++?

    • 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.

    • 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.

    • 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!

    • 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.

  2. May 24

    • 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?

    • 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.

    • 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.

    • 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 of future? 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.

    • 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.

    • 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.

    • 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.

    • 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.

    • 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.

    • 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.

    • 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.

    • 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!

  • 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.ru
  • How 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.