Meeting C++ 2022
2022-11-17..2022-11-19
-- online --
[Meeting C++ 2014, Meeting C++ 2015, Meeting C++ 2016, Meeting C++ 2017, Meeting C++ 2018, Meeting C++ 2019, Meeting C++ 2020, Meeting C++ 2021, Meeting C++ 2022, Meeting C++ 2023, Meeting C++ 2024, Meeting C++ 2025]
who it's for
C++ developers, systems programmers, performance engineers, toolchain engineers, build and release engineers, library authors, game developers
topics
oneAPI / SYCL offloading; Conan 2.0 graph model; Bazel monorepo recipes; std::function internals; dependency injection patterns; constexpr standard library; C++20 multithreading primitives; WebAssembly with Emscripten; CPU cache effects and non-temporal stores; C++ coroutines implementations; std::execution from metal up; petri net simulation in C++
| title | author | length |
|---|---|---|
| C++ for multi-accelerator, multi-vendor systems | Guy Tamir | 37m |
Claims that C++ code can run unchanged across CPUs, GPUs, FPGAs and vendors using oneAPI / SYCL and shows a laptop demo where switching the execution policy… | ||
| Whats new in Conan 2.0 | Christopher McArthur | 44m |
Conan 2.0 claims a rewritten core with about 60% new code and backwards compatibility for ~20% of flows while improving dependency accuracy with a new graph… | ||
| Living at HEAD with Bazel | Šimon Tóth | 45m |
Compares the HEAD monorepo vs binary polyrepo tradeoffs and shows concrete Bazel recipes: uses Bazelisk, Bazel modules, GoogleTest and Catch2, sanitizers and… | ||
| std function, past, present, future | Farid Mehrabi | 57m |
A concise, concrete itinerary: implements an Observer with C-style function pointers, measures std::function internals (type‑erasure metadata plus SSO buffer)… | ||
| How to Use Dependency Injection to Write Maintainable Software | Francesco Zoffoli | 01h 00m |
Shows concrete C++ patterns and tradeoffs for dependency injection: pass read‑only data as const refs, prefer value or span for sequences, inject behaviors… | ||
| Petrinets: What are they? How can they help us? | Gabriel Valenzuela | 45m |
Defines Petri nets as directed bipartite graphs with places, transitions and tokens and gives the actual math: incidence matrix, marking vectors and extensions… | ||
| A totally constexpr standard library | Paul Keir, Joel Falcou | 01h 00m |
C'est provides a constexpr reimplementation of many std components (vector/string/unique_ptr/etc.) that rely on recently available C++20 features and are… | ||
| An introduction to multithreading in C++20 | Anthony Williams | 01h 02m |
Starts with concrete tools and rules: use std::jthread (destructor calls request_stop and joins), cooperate with stop_token/stop_source for cancellation… | ||
| Sandbox Games: Using WebAssembly and C++ to make a simple game | Ólafur Waage | 01h 09m |
C++ game logic compiles to WebAssembly with Emscripten and runs in the browser, producing a sliding‑puzzle like 2048 implemented with exported functions and… | ||
| CPU Cache Effects | Sergey Slotin | 01h 06m |
Benchmarks show concrete numbers: tight loops hit ~12–13 billion ops/s until they outgrow L1 and drop to ~2 billion ops/s once hitting RAM, and L1 hits cost… | ||
| AMA with Andrei Alexandrescu | Andrei Alexandrescu | 01h 04m |
AMA format: specific takeaways, not slogans. Key claim: ranges are necessary but unsafe — dangling views are a real hazard. Proposed tool: attribute-based… | ||
| Belle Views on C++ Ranges, their Details and the Devil | Nicolai M. Josuttis | 02h 02m |
Claims that C++20 ranges shipped with dangerous specifics: const propagation often fails for views, cached begin computation makes behavior depend on timing… | ||
| AMA with Inbal Levi | Inbal Levi | 01h 07m |
Notes: Kona meeting focuses on C++23 bug-fix meetings with two more site meetings planned and a February publication target; development uses GitHub for issues… | ||
| AMA with Bjarne Stroustrup | Bjarne Stroustrup | 01h 12m |
A wide-ranging AMA names concrete changes and tools: modules that speed compilation and a modular standard library with import STD, C++20/C++23 feature use, a… | ||
| Breaking Dependencies: The Path to High-Quality Software | Klaus Iglberger | 01h 38m |
Claim: software quality means easy to change, extend, test, and that hidden dependencies are the core problem. Evidence: counted ~47 conference talks with ~8%… | ||
| To Move or not to Move | Amir Kirsh | 53m |
Interactive code review that answers "should I std::move here" with concrete rules and failing examples: demonstrates a crashing dangling-reference when… | ||
| Nth pack element... - A case study | Kris Jusiak | 01h 00m |
Varied C++ techniques for extracting the nth element are implemented and benchmarked (recursion, overloads, fold/IVFE, C++20 concepts, mp11, preprocessor… | ||
| Lambdas, how to capture everything and stay sane | Dawid Zalewski | 55m |
Describes exact capture kinds, gives concrete rules and compiler surprises: simple captures preserve constness while init captures drop CV qualifiers… | ||
| The floor is lava, trying to teach C++ | Patricia Aas | 01h 09m |
Two two‑day courses teach programmers from other languages a minimal, modern C++ workflow by building a small game that runs without no new or delete and… | ||
| Lightning Updates | Hana Dusikova | 58m |
Claims a reusable C++ library that lets services push updates quickly to tens of millions of clients by shipping tiny metadata, deltas and occasional snapshots… | ||
| Deciphering Coroutines - a visual approach | Andreas Weis | 01h 04m |
Sustainable introduction to C++20 coroutines that builds a cheat sheet of diagrams and minimal working code, showing how the compiler creates the return… | ||
| Trading at light speed: designing low latency systems in C++ | David Gross | 01h 00m |
Claims concrete wins: designing for cache locality drops working set from ~400 MB (node‑based map) to ~1 MB (custom stable vector), targets software latencies… | ||
| C++ Coroutines from scratch | Phil Nash | 01h 02m |
Shows a concrete migration from a lambda‑continuation loader to C++20 coroutines that replaces manual batching with coroutine suspension. Code uses a promise… | ||
| The Imperatives Must Go! | Victor Ciura | 01h 05m |
Claims that functional ideas from Haskell are already embedded in modern C++, demonstrates concrete code patterns: lifting/fmap over std::optional and… | ||
| How C++23 changes the way we write code | Timur Doumler | 01h 32m |
C++23 claims to finish C++20 while adding a few punchy, practical features: std::expected provides value-or-error returns that propagate through algorithms… | ||
| std::execution from the metal up | Paul Bendixen | 42m |
Claims that sender/receiver (P2300) can run on microcontrollers with no dynamic allocations and optional exception costs are demonstrated by a prototype UART… | ||
| C++ Mythbusters | Victor Ciura | 01h 00m |
Claims tested and tooling recommended focus on measurable results and concrete fixes: printf-family uses global locale and a mutex so replacing it with libfmt… | ||
| The Magic Behind Optimizing Compilers: Static Program Analysis | Philipp Dominik Schubert | 01h 04m |
Shows how static analyses are actually implemented using Clang/LLVM IR, demoing constant propagation and a call‑site replacer pass that generates and rewrites… | ||
| Enough TMP to write a Variant | Denis Yaroshevskiy | 49m |
Claims a working std::variant reimplementation in C++20 that fits less than 500 lines and can be taught in an hour, with real support for multiple-dispatch… | ||
| Enough TMP to write a Variant | Denis Yaroshevskiy | 41m |
Claims a practical path from basic TMP to a working std::variant implementation that compiles under C++20 and fits less than 500 lines. Shows concrete tools… | ||
| Cool stuff about GDB you didn't know | Greg Law | 59m |
GDB proves far more than break/step/print: live demos show the Python scripting API driving custom prompts and pretty-printers, the curses TUI and… | ||
| Foundation of GPU Programming | Filipe Mulonde | 01h 06m |
Claims that GPU throughput comes from massive SIMD lanes plus memory design and shows concrete hardware and software artifacts: A100/H100 block diagrams, HBM… | ||
| A deep dive into dispatching techniques | Jonathan Müller | 52m |
A small stack bytecode interpreter is built and benchmarked (recursive Fibonacci) using hyperfine and perf with assembly inspection; a switch dispatch measures… | ||
| [normalized Sound] A deep dive into dispatching techniques | Jonathan Müller | 52m |
Benchmarks many dispatch styles (switch/binary-search, jump tables, function-pointer threading, computed-goto token threading, tail-call chaining and inline… | ||
| Just Enough Assembly for Compiler Explorer | Anders Schau Knatten | 01h 00m |
Promise: 50 minutes to decode Compiler Explorer output into concrete actions and reasons. Live emulation of an x86-64 CPU walks through registers, push/pop… | ||
| C++ Standard Parallelism | David Olsen | 52m |
Claims Standard C++ now gives a practical, portable on‑ramp to run parallel code on CPUs GPUs and clusters; concrete pieces include parallel algorithms with… | ||
| std::function: a deep dive behind the curtain | Andreas Reischuck | 01h 10m |
Explains how std::function stores and invokes callables: a naive implementation uses a virtual call interface and shared_ptr clone semantics, real libraries… | ||
| Breaking Enigma with the Power of Modern C++ | Mathieu Ropert | 58m |
Claims a modern desktop can break Enigma using optimized C++: a C++20 implementation with C++20 parallel algorithms, compile‑time rotor wiring… | ||
| Experimenting with type erasure in C++17 | Olivia Quinet | 46m |
A C++17 SAS7BDAT reader implements external polymorphism via type erasure (template-based models, adapters, value-semantics) plus a pimpl and factory-backed… | ||
| Extend and Embed Python with C++ | Rainer Grimm | 01h 01m |
Shows exact mechanics: building a PIC shared library, calling it from Python with ctypes, generating wrappers with SWIG, and writing idiomatic bindings with… | ||
| the expected outcome | Ivan Čukić | 59m |
Shows that std::expected in C++23 is a concrete, usable error type (extensions land in C++26) and demonstrates a complete roll-your-own expected plus… | ||
| Properties of Unit Tests | Arne Mertz | 01h 03m |
Clear, practical checklist of what makes unit tests useful: concrete properties (correctness, isolation, readability), design consequences (dependency… | ||
| Standard C++ toolset | Anastasia Kazakova | 59m |
Claim: C++ lacks a single standard toolset but converges on practical defaults. Survey-backed specifics: GCC still leads in many areas, one quarter of projects… | ||
| Basic usage of PMRs for better performance | Marek Krajewski | 01h 10m |
Shows concrete payoff: use std::pmr to replace many small heap calls with a stack-backed slab or pooled blocks and cut allocation overhead… | ||
| Universal/Forwarding References | Nicolai M. Josuttis | 01h 02m |
Concrete rules and gotchas about T&&, auto&& and std::forward determine whether code moves, copies or fails to compile: template-parameter rvalue references… | ||
| Reflection without Reflection TS | Fabian Renn Giles | 39m |
A catalogue of concrete techniques and limits appears: template specialization and SFINAE check pointer/array/polymorphic properties; dynamic_cast to void for… | ||
| Abstraction the true superpower of C++ | Guy Davidson | 01h 01m |
Claim: abstraction is C++’s superpower, demonstrated by concrete tools and outcomes. C++ uses classes and templates to model problem‑domain nouns and hide… | ||
| Floating point computations today and in the future | Boguslaw Cyganek | 01h 06m |
Explains concrete tradeoffs: IEEE 754 causes nonassociative rounding and subnormal slowdowns; 16‑bit floats (FP16, standardized 2008) often suffice for neural… | ||
| Keeping Track of your deadlines in time critical systems | Matthias Killat | 01h 07m |
Claims a lightweight C++ monitoring API that detects deadline violations at runtime across threads, using a background high‑priority monitor plus per‑thread… | ||
| Clean Test: a modern C++20 testing framework | Philipp Ochsendorf | 01h 03m |
Clean Test claims a working C++20 testing framework that implements a unique constexpr expression introspection mechanism with true short‑circuit semantics… | ||
| std::function: a deep dive behind the curtain | Andreas Reischuck | 01h 10m |
A concrete walkthrough shows how std::function implements type erasure: partial template specialization extracts return and argument types, a shared_ptr-based… | ||
| nothing matches | ||