Meeting C++ 2023
2023-11-12..2023-11-14
-- 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, library authors, performance engineers, tooling and build engineers, concurrency and parallelism engineers, embedded developers, software engineering educators
topics
compile-time reflection and serialization; ranges library design and optimizations; C++20 concurrency primitives; implementing coroutines in C++17; cross-platform C++ modules; CMake and Conan workflows; advanced SIMD algorithms; expressive compile-time parsers; entity component system storage; time travel debugging; reading CSV with standard C++; dependency injection patterns
| title | author | length |
|---|---|---|
| AI Assistants for C++ Developers | Michael Price | 49m |
Demonstrates GitHub co-pilot chat and inline completions actually editing a real project, swapping C++ REST SDK for Poco by editing vcpkg/CMake and building… | ||
| Let's make a library that uses Reflection | Konstantinos Kanavouras | 01h 10m |
Claims that a full C++ class can be (de)serialized into a string with one line using Reflection and C++23 on experimental compilers and demonstrates it by… | ||
| Introduction to C++ Containers - Know Your Data Structures | Mike Shah | 55m |
Overview of the Standard Library containers with concrete examples and costs: sequence, associative, unordered, and adapters are shown with C++ code… | ||
| Concurrency in C++20: A Deep Dive | Rainer Grimm | 01h 00m |
C++20 actually adds concrete primitives and shows measured tradeoffs: atomic_flag stays the only guaranteed lockfree atomic, compare_exchange_strong underpins… | ||
| Performance matters - new tricks for old dogs | Matt Bentley | 59m |
Claims concrete performance wins and working prototypes live on pb.org: PFreorderRays implements swap/move-and-pop range erasure and reports averages like… | ||
| How to start a modern C++ project | Mikhail Svetkin | 01h 00m |
Claims that a modern C++ project can be reproducible if each decision is explicit: uses CMake with presets+Ninja to unify compiler flags, vcpkg (or Conan) for… | ||
| Better C++ ranges | Arno Schödl | 01h 05m |
think-cell ships a C++ ranges library evolved over 20 years that stays compatible with C++20 but replaces fat iterators with an index abstraction so stacked… | ||
| Variable Monitoring with Declarative Interfaces | Nikolaj Fogh | 47m |
Code for a declarative builder-pattern API that wires hundreds of signal monitors into a pub/sub system is available at https github com nfogh monitoring and… | ||
| Dependency Injection Patterns: Efficiency and Usability | Vladimir Vishnevskii | 01h 07m |
Compares concrete outcomes: static polymorphism (templates + concepts) produces direct calls and inlining so it avoids runtime indirection on hot paths… | ||
| C++ Horizons | Bryce Adelstein Lelbach | 42m |
Concrete demos show compile-time reflection/injection that uses the rifi/reflection handle, splice and identifier splice with a template 4 to generate enum… | ||
| A tour through the Meeting C++ community survey | Jens Weller | 01h 02m |
A continuous survey since 2020 collects 88 questions and yields yearly aggregates, combination queries and sessioned votes; it reports C++17 as the most used… | ||
| So you'd like to import a CSV File... | Jens Weller | 44m |
Code for importing EventBrite CSVs with standard C++ and Qt reads lines with std::getline and parses by character into std::string_view to avoid copies, then… | ||
| 6 impossible things | Kevlin Henney | 02h 04m |
Six precise traps decide whether a talk is worth watching: a reproducible claim like IEEE‑754 subtraction is functionally complete or the concrete fix midpoint… | ||
| Helping open communities thrive | Lydia Pintscher | 01h 18m |
KDE documents concrete fixes not slogans: a written manifesto, a clarified mission and a recurring goals process that invites proposals, discussion and a… | ||
| Prog C++ | Ivan Čukić | 01h 51m |
Closing keynote proposes concrete idioms and tiny library pieces: a lazy keyword emulated by a class template using std::optional and call_once for thread‑safe… | ||
| My favourite memory leak | Björn Fahller | 04m |
Claim: a leak happens without calling new by exploiting a recursively nested std::vector: a type V holds vector<V> children, creating one child and then… | ||
| Implementing coroutines using C++17 | Alon Wolf | 06m |
An actual C++17 coroutine implementation appears, about 200 lines of code with accompanying test cases, and it literally smashes the return address on MSVC x64… | ||
| German for Software Developers | Tina Ulbrich | 07m |
Shows exactly which English dev verbs Germans actually borrow and how they conjugate them: present and conversational past patterns, the regular g-...-t form… | ||
| (Fine) Wine and MSVC | Yannic Staudt | 09m |
Claims running MSVC under Wine on Linux yields measurable wins: a reproduced installer from published JSON manifests implemented as a 1,500-line Python… | ||
| Reading CSV Files with Standard C++ | Jens Weller | 07m |
Claims that ranges::split fails on quoted fields, because CSV permits commas, quotes and embedded newlines. Notes std::quoted is stream-only and returns… | ||
| Rewiring your brain with test driven thinking in C++ | Phil Nash | 01h 03m |
Claim: writing tests first saves time, sharpens focus and can be fun. Demonstration uses leftpad example in C++ with the Catch test framework to show the… | ||
| What we've been (a)waiting for? | Hana Dusikova | 56m |
Claims coroutines are simple and shows a concrete C++ implementation: a fetch-like API built on libcurl multi API and a small scheduler that runs immediate… | ||
| What I learned from sockets | Filipp Gelman | 01h 01m |
Asserts that the socket select pattern generalizes: wait once for events, then run straight‑line handlers; demonstrates using POSIX primitives like… | ||
| So, you want to use C++ Modules ...cross platform | Daniela Engert | 01h 03m |
Clear, practical state: MSVC is feature-complete for modules while clang and GCC are still partial; module builds need BMI compatibility, compiler-specific… | ||
| CMake and Conan: past, present and future | Diego Rodriguez-Losada | 01h 04m |
Shows a live build of an application that pulls TensorFlow and OpenCV through Conan and CMake presets and installs all transitive dependencies, producing… | ||
| Class Layout | Miloš Anđelković | 58m |
Shows concrete rules and experiments: use offsetof and compiler dumps (GCC/clang/MSVC flags, Godbolt) to see real offsets; C++11 loosens block ordering and… | ||
| Teaching modern C++: is it a job or a mission? | Boguslaw Cyganek | 01h 04m |
Argues that well-chosen 20% of topics yields 80% of usable C++ and shows concrete curricula: one-line main to histogram, matrix class evolving into iterators… | ||
| Taming Lambdas' uniqueness | Dawid Zalewski | 59m |
C++ lambdas each produce a unique closure type, which breaks passing, storing, or comparing them; concrete fixes are shown: use templates for zero overhead… | ||
| Optimizing Multithreading Performance | Shivam Kunwar | 47m |
Shows that false sharing causes severe cache-line ping‑pong (benchmarks on a 10M-element sum and row vs column scans), demonstrates fixing it with 64‑byte… | ||
| Compile-time sparse matrices | Daniel Withopf | 01h 04m |
Claims a C++ library that encodes any sparsity (zeros, ones, symmetric remaps) in types and removes runtime loops by using compile-time loops and fold… | ||
| Swift ABI Resilience | Victor Ciura | 01h 02m |
Swift implements a concrete ABI resilience model: per-module resilience domains that let library-internal code use direct layouts while consumers use runtime… | ||
| Minimal Logging Framework in C++20 | Koen Poppe | 52m |
A compact C++20 logger is built: about 200 lines that record an 8‑byte high‑resolution timestamp (8 bytes timestamp), an instruction pointer, a second… | ||
| Expressive Compile Time Parsers | Alon Wolf | 01h 01m |
Claim is that compile time parsers let C++ accept custom DSLs with zero runtime overhead by moving parsing into constexpr and using existing compilers. The… | ||
| Regular, revisited | Victor Ciura | 01h 05m |
Explains why regular = semi-regular + equality matters for STL algorithms, shows C++20 Concepts and three‑way comparison formalizing requirements, and gives… | ||
| Data Storage in Entity Component Systems | Mathieu Ropert | 01h 05m |
Claims that reorganizing game data into struct-of-arrays memory layouts and using a simple dense-storage pattern with swap-delete with indirection yields much… | ||
| C++ Common Knowledge | Dawid Zalewski | 54m |
A short live code forensic walks through a tiny buggy program that compiles but crashes showing more than ten real violations and applying fixes one by one… | ||
| Typical C++, But Why? | Björn Fahller | 49m |
Shows concrete patterns and code: a SanitizedString type that forces explicit construction so queries fail to compile instead of leaking unsanitized input… | ||
| Throwing Tools at Ranges | Tina Ulbrich | 56m |
Compares three implementations — C-style C++, C++17, C++23/ranges — using Google Benchmark, cach Grint and the Visual Studio profiler on Windows and Linux… | ||
| Advanced SIMD Algorithms in Pictures | Denis Yaroshevskiy | 52m |
Slides and demos show concrete SIMD wins: an EVE library implementation uses actual SIMD/register intrinsics on x86 and M1 with 32‑byte registers, yielding… | ||
| Tooling Intuition | Kevin Carpenter | 48m |
Compares real compiler outputs (GCC 4, clang 3 and clang 17) and shows how turning on -Wall -Wextra -pedantic changes error clarity; walks through monstrous… | ||
| Design Patterns: The most common misconceptions | Klaus Iglberger | 50m |
Claims a set of precise corrections: many people label any creator a pattern but Factory function ≠ Factory Method (showing JSON reader vs injected creator)… | ||
| Memory Model: Get your shared data under control | Jana Machutová | 55m |
Explains the C++ memory model with concrete effects: compilers and CPUs reorder stores and reads, store buffers delay visibility, and sharing kills… | ||
| TDD for Microcontrollers | Daniel Penning | 54m |
Explains how dual-target (host/off‑target + cross‑compiled on‑target) testing plus open loop tests let TDD hit microcontroller pin behavior, using Robot… | ||
| A Smooth Introduction to SYCL for C++20 afficionados | Joel Falcou | 56m |
Claims that SYCL lets existing C++20 code target GPUs, CPUs and FPGAs with minimal API changes, and demonstrates it by integrating SYCL into a C++20… | ||
| Playing Video Games One Frame at a Time | Ólafur Waage | 57m |
Shows a reproducible pipeline: running Doom demo files to get deterministic outputs and gate refactors with an automated demo-check CI, using C++ to parse… | ||
| Using the filter view in practice | Nicolai M. Josuttis | 01h 01m |
The C++20 filter view works by wrapping a range and evaluating the predicate on iteration so the very first call to begin can be linear and implementations… | ||
| Type Erasure - The Implementation Details | Klaus Iglberger | 01h 03m |
Argues that type erasure gives value semantics and fewer dependencies than inheritance and demonstrates two ~20‑line Type Erasure Wrappers (owning and… | ||
| Time Travel Debugging | Greg Law | 01h 02m |
Shows concrete claims and working demos: GDB process record can rewind but is very slow, rr and undo LiveRec capture user‑space events and replay with… | ||
| How to deal with static analysis findings: MISRA | Xavier Bonaventura | 01h 02m |
Practical rules for handling static analysis findings; concrete steps: require a file and line, explain what the issue is and why it matters, link standards or… | ||
| Applied Modern C++: The problem of messages versioning in API | Olivia Quinet | 58m |
A concrete Modern C++ system for bidirectional API message versioning is presented: an original CRTP-based C++11 prototype and a refactor using std::variant +… | ||
| grpc C++ ... a way to go generic | Irakleia Karyoti | 50m |
Claims a C++ library that wraps grpc C++ generic callback APIs and protuff-bytes messages so existing domain classes avoid direct grpc and protuff… | ||
| What is a random number and why should I care | Frances Buontempo | 01h 04m |
Claims that no such thing as a random number and that practical randomness comes from PRNGs are demonstrated with concrete tools: a linear congruential… | ||
| nothing matches | ||