Practicing C++ developers from leading companies will share their knowledge, present practical talks, and discuss real-world case studies backed by metrics.
The conference will take place simultaneously in two countries and three cities. Belgrade and Moscow will offer both onsite and online programs, while St. Petersburg will feature onsite-only program with activities.
Modern toolchains offer a wide range of tools for identifying errors during the QA (various sanitizers, fuzzing, property-based testing, etc.). However, critical software running in production also needs UB protection. This protection, also known as «hardening», must be comprehensive enough to prevent the most common vulnerabilities while remaining lightweight enough to avoid a significant performance impact. The talk covers the hardening features available in modern toolchains (ASLR, Glibc and STL checks, etc.) and their influence on the evolution of C++.
A short talk about JSON serialization to chase down last year’s talk about string escaping. We’ll quickly go through escaping as part of serialization, and why UTF-8 validation is there (we’ll remind ourselves about epic fail and drama around escaping in PostgreSQL).
We’ll look at serialization and discuss:
We will take a look at strict aliasing, restrict, the optimizations they enable, and some surprising behavioral nuances. We'll also investigate how they affect performance, and the difficulties of supporting them in compilers and the C++ standard.
How C++ projects used to link external libraries in the past and how they do it today. We’ll review system dependencies via pkg-config, the magic behind find_package () in CMake, and the dependency () directive in Meson. We’ll also look at how Conan and vcpkg are changing the build approach, and take a glimpse into the future: CPS as a new standard for cross-language dependencies.
Google has introduced a relatively new feature in their internal (but publicly available on GitHub) TCMalloc implementation to improve memory access speed: the hot_cold extension for new/malloc.
In this talk, we’ll explore why this feature was developed, how it relates to LLVM’s MemProf functionality, how it works (or doesn’t), how much it can speed up your application, and what to do if TCMalloc isn’t an option but you still want to benefit from this optimization.
The talk covers probabilistic data structures, focusing on how they work and their real-world applications, from bloom filter to hyperloglog. The case studies will include use cases from HFT, deduplication, unique object counting, and latency assessment.
Loves C++ and knows how to cook it.
Likes metaprogramming, multithreading and asynchronous programming. Coroutine adoption enthusiast.
He is also the Chair of the Russian Working Group for C++ Standardization. Anton is developing and maintaining the GCC standard library and Boost libraries. He is the author of the PFR, TypeIndex, DLL and StackTrace Boost libraries, and an active maintainer of Any, Conversion, LexicalCast, and Variant.
Anton is also the author of the Boost C++ Application Development Cookbook.
He loves C++, large acyclic graphs, and hiding mutexes from business logic in multithreaded code.
She builds communities, arranges events, and coordinates speakers.