Meeting C++ 2024
2024-11-14..2024-11-16
-- 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, build engineers, systems programmers, performance engineers, tooling developers
topics
CMake target-centric packaging; sender/receiver framework (stdexec); consteval format-string validation; std::variant implementation details; C++ modules getting started; parallel algorithms with execution policies; portable floating-point calculations; ThreadSanitizer and time-travel debugging; clang-tidy modernisation rules; thread pool design elements
| title | author | length |
|---|---|---|
| Not getting lost in translation | Daniela Engert | 01h 07m |
Claims a library that preserves std::format compile‑time checking while allowing runtime language choice, replacing Boost.Locale’s per‑call encoding… | ||
| An Introduction to Swarm Intelligence Algorithms | Frances Buontempo | 52m |
Implements a cat swarm algorithm in C++ with working demo code (50/50 chance the PowerPoint embed runs), uses C++11 randoms and SFML for real‑time visuals… | ||
| Clean CMake for C++ (library) developers | Kerstin Keller | 01h 01m |
Claims concrete wins: 100+ open source libraries integrated and actionable rules for library authors. Shows CMake features actually used (target‑centric… | ||
| The Beman Project: bringing standard libraries to the next level | David Sankel | 01h 05m |
Project provides runnable implementations, a cookie‑cutter exemplar repo, and CI + GitHub Codespaces so proposals are exercised before standardization… | ||
| Stories from a parallel universe | Jana Machutová | 44m |
Concrete claims and code-level guidance: C++17 parallel algorithms are usable by adding an execution_policy parameter, with four policies (seq, par, unseq… | ||
| The Aging Programmer | Kate Gregory | 01h 03m |
Survey of hundreds of programmers finds three quarters worried about eyes and reveals concrete signals and fixes: baseline eye and hearing checks… | ||
| Testable by Design | Steve Love | 56m |
A concrete heating controller is built and tested: a timer activator, a thermostat activator and a fake heater verify behavior, not implementation. Examples… | ||
| The Many Variants of std::variant | Nevin Liber | 59m |
History of std::variant focuses on concrete design decisions not slogans: the final C++17 variant implements an empty state on assignment failure with a heap… | ||
| Introduction to Sender/Receiver framework | Goran Aranđelović | 01h 04m |
Covers concrete sender/receiver primitives, shows working examples built with stdexec and NVIDIA's implementation, ties them to C++20 coroutines by mapping… | ||
| How to debug Linux multi threaded code | Greg Law | 01h 06m |
Shows concrete debugging steps: compile with ThreadSanitizer to get a line‑accurate race (demo program returns 0 or 1 and TSan points to line 9 vs line 10)… | ||
| Performance engineering: being friendly to your hardware | Ignas Bagdonas | 01h 06m |
Shows measurable hardware effects: memory goodput sits near ~10% of interface time, banking and page mapping cost matters, HBM helps only with parallel… | ||
| Symmetry in Code - Should We Care? | Victor Ciura | 59m |
Claims that matter: C++ equality rewriting changes (see P2468R2) actually suppress rewriting when an operator!= suppresses rewriting, which explains a concrete… | ||
| Core and other guidelines: the good, the bad, the ...questionable? | Arne Mertz | 01h 06m |
Covers concrete claims: guidelines succeed or fail on rationale and context, not topic names. Shows tooling used — clang-tidy checks, clang-format and GSL —… | ||
| Growing Pains: Lessons from seeing C++ codebases mature | Nico Heidtke | 01h 01m |
Sees concrete lessons: keep third‑party code isolated and tracked (use conan package manager or submodules), run static analyzers and sanitizers immediately… | ||
| Security in C++: Hardening techniques from the trenches | Louis Dionne, Konstantin Varlamov | 01h 05m |
Two mitigations land in Clang and libc++: a guaranteed traps standard‑library hardening that converts selected UB into immediate runtime traps with four modes… | ||
| C++ Reflection: Back on Track | David Olsen | 01h 03m |
Claims that compile-time reflection is on track for C++26 and that P2996 proposal focuses on nearly complete introspection with minimal code injection… | ||
| Applied Modern C++: beyond type erasure and visitor pattern | Olivia Quinet | 49m |
Claim: a reusable C++ library composes type erasure and visitor pattern via templated base, pimple (pimpl) strategies and a visitor strategy so a pipeline can… | ||
| Classes C++23 Style | Sebastian Theophil | 52m |
Summary of concrete takeaways: prefer rule of zero for simple value types and implement the rule of five only when managing memory; build small resource… | ||
| Portable floating-point calculations | Guy Davidson | 58m |
Claims a practical route to portable reproducible floating‑point that already solved deterministic multiplayer for Total War and now informs a geometry… | ||
| The Most Popular Bugs and Code Smells in C and C++ | Philipp Dominik Schubert | 01h 04m |
Sonar data yields a ranked list of the most common static-detectable bugs in C/C++ (ranking = reach + bug count ÷ 2), led by uninitialized variables, buffer… | ||
| Design Patterns - The Most Common Misconceptions (2 of N) | Klaus Iglberger | 57m |
Argues specific claims: CRTP splits into two intents — a compile‑time static interface versus a mix‑in — and explicit object parameters only address the… | ||
| Contracts for C++ | Timur Doumler | 01h 04m |
Proposal claims a Contracts MVP targets C++26 with concrete syntax for preconditions postconditions assertions, four evaluation modes (ignore / observe /… | ||
| Fast and small C++ - When efficiency matters | Andreas Fertig | 01h 05m |
Shows concrete microtechniques and measurable outcomes: uses compressed_pair with no_unique_address EBO to keep unique_ptr a single pointer; compares SSO sizes… | ||
| Clean code! Horrible performance? | Sandor Dargo | 56m |
Claim: clean code is rarely the root cause of catastrophic slowdown; the hard numbers and fixes matter. Cites Amdahl's law, examples where redundant… | ||
| An (In-) Complete Guide to C++ Object Lifetimes | Jonathan Müller | 01h 00m |
Deep dive into when lifetimes actually start and end: exact rules for temporaries and temporary lifetime extension, placement new plus explicit destruction and… | ||
| Software Engineering Completeness | Peter Muldoon | 01h 01m |
Defines “done” as code deployed everywhere and exercisable by users, not merely merged; requires concrete, acceptance criteria observable/testable and dates… | ||
| C++ Concepts | Nicolai M. Josuttis | 01h 04m |
C++20 Concepts let generic code state actual constraints so overload resolution and diagnostics improve: use requires clause and named concepts to pick… | ||
| Pipeline architectures in C++ | Boguslaw Cyganek | 01h 05m |
Claims an actual framework: a custom pipeline built around std::expected (C++23) with an overloaded pipe operator, plus a parallel variant using synchronized… | ||
| There is no silver bullet | Klaus Iglberger | 58m |
Claims that std::variant is not a drop-in replacement for virtual functions and that design choices beat single features. Builds three concrete solutions for a… | ||
| The C++ Execution Model | Bryce Adelstein Lelbach | 56m |
C++ defines a platform‑agnostic abstract machine with flat storage and threads whose evaluations are ordered by sequenced before, synchronizes with and… | ||
| Templates Made Easy with C++20 | Roth Michaels | 01h 03m |
Claims that C++20 concepts plus constexpr/consteval and fold expressions let template code read like normal code, remove much SFINAE and heavy type-trait… | ||
| C++ Modules - Getting started today | Andreas Weis | 01h 04m |
C++20 modules are usable now: compilers provide usable support (clang 18–19 recommended, GCC 14 recent but rough, MSVC toolset 1934+), and CMake adds file sets… | ||
| Collective Amnesia? | Peter Sommerlad | 01h 42m |
Claim: the profession repeatedly forgets proven practices and pays the price. Evidence: a thousand lines of scaffolding become a four‑ or five‑line template… | ||
| Peering forward: C++'s next decade | Herb Sutter | 02h 02m |
Predictable claim: compile-time reflection looks on track for C++26 and already has prototype implementations (EDG, clang) plus cppfront demos. Concrete… | ||
| My favorite data structures | Hana Dusikova | 01h 25m |
Clank’s constant-evaluation engine is a 17,000 line interpreter that implements values as APValue nodes with array/union/struct variants, a pointer model based… | ||
| Fear in Tech | Titus Winters | 02h 13m |
Claims that culture drives technical outcomes: research shows psychological safety explains roughly 30% of team success, and managers overestimate visibility… | ||
| On parameter sinks | Titus Winters | 07m |
Claim: an rvalue-reference parameter by itself is often only a maybe-move, not a guaranteed move, and that matters for lifetimes and allocations; proven by… | ||
| My least favorite C++ feature | James McNellis | 06m |
Declares C++'s worst feature as memory unsafety and shows how an arbitrary write can overwrite function pointers or vptrs to yield arbitrary code execution… | ||
| Hashing | Hana Dusikova | 07m |
A tiny one‑header C++ library called CT hash wraps OpenSSL to replace its clunky allocate/init/update/finalize dance with typed value and hasher objects that… | ||
| Meeting C++ community survey results | Jens Weller | 42m |
Survey runs since 2020 with 88 questions and session saved votes that produce yearly aggregates up to 2023 and can combine answers for cross filters. Tooling… | ||
| What is a static function but isn't a static function | Miloš Anđelković | 48m |
Claims that making the implicit this explicit (the deducing this proposal) turns some member functions into ordinary function-signatures so they can be used as… | ||
| Writing VS Code extensions for fun and profit | Nikolaj Fogh | 58m |
Shows how VS Code extensions actually replace a legacy IDE by wiring TypeScript + Node/npm into tasks.json and launch.json, running 266 npm packages installed… | ||
| From C to Modern C++: Transforming the classroom and beyond | Gabriel Valenzuela | 29m |
A curriculum shift replaces mixed C/C++ labs with a sequence of project-based labs that progress from C sockets and HPC benchmarks to a distributed system… | ||
| Parallel Algorithms Ranges and oneDPL | Abhilash Majumder | 54m |
Three proposals (P2300, P2500, P3179) add concrete machinery: senders/receivers with factory/adapter/consumer APIs, policy-aware scheduler binds "where" and… | ||
| Customising clang tidy to modernise your legacy C++ code | Mike Crowe | 44m |
Custom clang‑tidy checks convert legacy printf wrappers to fmt::printf then fmt::print and prepare for C++23 std::print, changing about 7,500 lines across ~440… | ||
| Thread Pool Elements | Jens Weller | 49m |
Prototype thread pool implemented in C++20 inside Compiler Explorer uses a std::deque work queue, condition_variable, std::stop_source/stop_token and an atomic… | ||
| C++ for C Developers | Slobodan Dmitrovic | 40m |
Claims concrete migration steps from C to C++: stop using malloc/free and raw arrays, start using std::vector / std::array and std::string, prefer… | ||
| Migration from C to C++ | Slobodan Dmitrovic | 40m |
Claims concrete migration steps: learn classes, references and templates and unlearn raw arrays and manual malloc/free; prefer std::vector or std::array over C… | ||
| Teaser for Peter Sommerlads Meeting C++ 2024 keynote | Peter Sommerlad | 01m |
A live audience poll separates who writes unit tests for all C++ code who writes some and who has never written any and converts that into three clear… | ||
| C++26: an overview | Rainer Grimm | 54m |
Roadmap items become concrete: a new reflection operator that produces compile‑time meta values and splices code back, a minimal but usable contracts system… | ||
| nothing matches | ||