• Talk

    C++ tricks from Yandex.Taxi

    Atypical and effective solutions for typical tasks:

    • Pimpl — but without dynamic allocations;
    • Fast logging — but usually without std::ostream and std::locale;
    • Conversions from JSON/XML/YAML/... to user-defined types — but with code reuse (almost a function overloading by result type);
  • Talk

    Insights into the C++ standard library

    A couple of things about the C++ standard library implementation you might want to know. We'll discuss implementation details and how using of types and algorithms from the standard library may impact the performance of your application.

  • Talk

    Premature optimization is evil! All hail premature optimization!

    Based on their own experience of developing a static code analyzer, Andrey and his team came to the conclusion that only premature optimization of everything that is available can save us from continuous declining performance. Speaker would like to share thoughts and techniques that his team apply in the company.

  • Talk

    Automate it

    Kirill Tikhonov will tell how to configure the infrastructure around the project and provide the painless service update.

  • Talk

    The C++20 synchronization library

    C++20 introduces a range of number of new synchronization primitives designed for the modern era; in this talk, you'll learn how to use these new tools to write scalable C++ software.

  • Talk

    How we switched to vcpkg

    The talk will be dedicated to the vcpkg and its pros and cons. We will consider these flaws and fix them, and our vcpkg system will be more competitive than Conan.

  • Talk

    The C++ rvalue lifetime disaster

    Arno will talk about the main problems surrounding rvalue references and suggest the alternate solution with the help of the library-only approach.

  • Talk

    Compile-time type tagging

    We will use and explain many new C++ features like fold expressions, concepts, type lists and index sequences, and the code will extensively use move semantics to generate a cleaner assembly code for type instantiation.

  • Talk

    Teaching geometry to C++

    With the linear algebra proposal making its way through the C++ standard committee, the authors are now considering teaching analytical geometry to C++. This talk will tell you about the progress to date.

  • Talk

    Dart as an opportunity to transfer a C++ application to web

    At one moment Timofey and his team realized that development of client application on C++ is long and expensive. And gradually began migrating products to the web. Speaker will tell how the team of C++ developers was able to quickly rewrite C++ code for web with help of Dart.

  • Talk

    Comfort class apartments for actors and handlers

    In this talk, an approach based on thread specialization will be explored. In many cases it allows you to get rid of shared data and write multithreaded programs, asynchronous by nature, in such a way that they look sequential in the code.

  • Talk

    Modules in C++20 — real or fake?

    We'll see how modules in C++ work, how they resemble and differ from similar concepts in other languages, what capabilities were included in the standard and how they will affect code that we write, discuss common misconceptions about modules (where they can and cannot help), look how they affect language tooling and to what extent they can accelerate compilation of real-life projects.

  • Talk

    BareMetal C++

    Karina will show and talk about the features of writing and building of C++ code with limited resources and the absence of the compiler.

  • Talk

    Clauses, qualifiers and patterns

    Declaring a variable or a function in C++ might be tricky. When should we make it static and inline? const and constexpr? What about consteval and constinit? How do templates affect this? In this talk, Mikhail will try to sort out all this variety of concepts.

  • Talk

    С++ Enterprise Edition — message brokers

    Alexander will tell about present-day MessageMQ market and its most outstanding representatives, go over advantages and disadvantages of message brokers, taking into account local import substitution market. Of course, he'll also tell how he wrote his own message broker and why exactly he did it.

  • Talk

    Hardening the C++ standard template library

    The C++ standard library is used by all C++ programs; it needs to be as robust as possible. Marshall will talk about the techniques used by libc++ to ensure robustness. He will cover debug mode, test suites, static analysis, dynamic analysis, code coverage tools, and fuzzing.

  • Talk

    Better code: Relationships

    A look at common ways data and code are connected in an application, how those relationships are typically represented, and the problems caused by the use and misuse of these paradigms. Then we'll look at ways to model these relationships in C++ and use them to build correct applications.

  • Talk

    A unifying abstraction for async in C++

    Eric Niebler digs into the Standard Committee's search for the basis operations that underpin all asynchronous computation. He will discuss why futures and promises are slow, what an executor is, what callbacks and coroutines have in common, and how the "Task" abstraction — under active R&D at Facebook — might do for async algorithms what the Iterator abstraction did for synchronous ones.

  • Talk

    Type punning in modern C++

    This talk is a comprehensive overview of type punning techniques, including new ones introduced in C++20. We will discuss when and how they can be used safely without causing undefined behaviour, what C++ does and does not allow you to do (and why), existing holes in the C++ language, and how to fix them. In the process, we will cover important C++ concepts such as object lifetime, object representation, and aliasing rules.