Here are our speakers for 2025 along with their talks:
Jody Hagins

Building Robust Inter-Process Queues in C++

The C++ standard was written with a single-process worldview. Processes are mentioned once - in a note stating that lock-free atomic operations work across process boundaries ...

Frances Buontempo

An introduction to reinforcement learning: Snake your way out of a paper bag

When people talk about AI they tend to mean LLMs, so this talk will to remind us of other approaches to AI. Reinforcement learning (RL) is a type of machine learning, so part of AI. An 'agent' takes actions in a dynamic environment. Better outcomes are rewarded and worse outcomes are penalised ...

Khushboo Verma

Smart Pointers, Dumb Mistakes

C++ smart pointers promise to make memory management easier—but they also introduce a new world of gotchas, performance quirks, and hidden complexities ...

Nicolai Josuttis

C++23 in Practice: A Complete Introduction

C++23 is the latest C++ release, which major C++ compilers start to support now more and more. Therefore, it is time to look at the contents of C++23 (to both new features and relevant extensions/modifications) ...

click here for more...

Rethink Polymorphism in C++

To implement polymorphism and heterogeneous collections the usual approach is to use inheritance and virtual functions ...

Timur Doumler

KEYNOTE: Contracts, Safety, and the Art of Cat Herding

In recent years, we have seen a strong push to make C++ 'safer' and 'more secure'. Several efforts are under way: contract assertions and library hardening have already been approved for the upcoming C++26 standard, while proposals like profiles and borrow checking are still in development ...

Walter E Brown

In Search of the Perfect Return: A C++ Programming Journey

Marcel Proust wrote (trans. ) that 'The true voyage of discovery... is not a journey to a new place; it is learning to see with new eyes. ' Accordingly, in the first part of this talk, we’ll explore a targeted selection of C++ features whose surface behaviors are already familiar to most of us ...

C++ Templates for Developers

As an intermediate-level C++ programmer, you already know about and have very likely used one or more kinds of C++ templates in your code ...

click here for more...
Roth Michaels

Back to Basics: Don’t get overloaded by overload sets

C++ developers write or use overload sets quite often in their daily work. On the surface overload sets seem like an easy to understand feature but this is C++ so there is lots of nuance lurking below the surface ...

Johannes Kalmbach

Understanding, Using, and Improving `std::generator`

Generators are one of the most common uses of C++20 coroutines and the only one directly supported in the standard library (since C++23). In this talk, we will explore the interface and potential applications of std::generator, as well as its performance on current compilers ...

Kristen Shaker

KEYNOTE: From LeetCode to Leadership: Fixing Broken Engineering Interviews

The traditional technical interview process is fundamentally flawed. Despite years of industry experience, many senior candidates are still subjected to algorithmic coding challenges that fail to reflect their actual job responsibilities ...

Tina Ulbrich

Green Programming

Energy consumption of IT centers is on the rise worldwide and makes up a non-negligible part of the total consumption. This is not just an economical but also an ecological problem ...

- with Hendrik Niemeyer
Robert Schimkowitsch

Safe and Readable Code: Monadic Operations in C++23

Let's talk about monads. What are they. Why and how would you use them. The aim of this talk is to introduce some fundamental functional programming techniques (such as monads) and explain how they make your code safer and more readable ...

Jason Turner

The Power and Pain of Hidden Symbols

If you develop on Windows, you're used to the pain and annoyance of having to manually export symbols from your DLLs. If you develop on Unix, you're used to symbols in shared objects being implicitly exported ...

C++ Best Practices

In this highly interactive 2-day class, we will review code and discuss what makes for good, high-quality C++. If you have read one of Jason's C++ Best Practices books, you'll have more context and will be better prepared to discuss the content ...

click here for more...
Sebastian Theophil

To Err is Human: Robust Error Handling in C++26

Every program may encounter errors, some originating from internal bugs in the program, others coming from the environment the program is operating in ...

Jonathan Müller

Missing (and future?) C++ range concepts

Iterators and ranges have been essential parts of the C++ standard library since its inception. With C++20, they were brought to the next level in the form of std::ranges: We now have formalized requirements on the algorithms, lazy views to enable pipelines, and much more powerful iterators ...

Inbal Levi

Welcome to v1.0 of the meta::[[verse]]!

This talk will introduce what is (likely) the final version of the 'Reflection' feature targeting C++26. With a proposal slated to introduce reflection to C++26 (including the “std::meta” namespace) getting strong support in WG21, we can already start imagining a whole new world of possibilities ...

Steve Love

CMake for the Impatient

CMake has emerged as a leading tool for managing C++ projects. Although it's not particularly new, there's a perception that it's complicated, arcane, or just unfamiliar ...

Mantrala Sandeep

C++ Reference Binding: L-Values, R-Values, and Forwarding—What Could Go Wrong?

Abstract: Understanding value categories and reference binding is essential for writing efficient and correct C++ code. This talk explores the fundamentals of l-values, r-values, and their impact on function calls, object lifetimes, and reference binding rules ...

Robert Leahy

Extending std::execution: Implementing Custom Algorithms with Senders & Receivers

P2300 introduces std::execution and the Senders & Receivers (S&R) model as a new paradigm for expressing asynchronous computation. std::execution specifies a fixed set of algorithms that, in some sense, define the baseline DSL of S&R, but this set is not exhaustive ...

Prithvi Okade

C++ Performance Tips: Cutting Down on Unnecessary Objects

In C++, unnecessary temporary object creation can lead to costly runtime operations, increased code execution, and higher memory usage. Luckily this can be improved. This talk investigates common scenarios that result in the creation of temporary objects, demonstrated through code examples ...

- with Kathleen Baker
Björn Fahller

Will your program still be correct next year?

Let's discuss what tests are for, and let those thoughts evolve into guide lines for a good testing philosophy. This talk is based on my experiences, both good and bad, and will offer advice for testing throughout the lifetime of your program ...

Braden Ganetsky

The Pattern Matching We Already Have

All the way since C++98, we have already had pattern matching in C++. It's limited to specific places, but it's there ...

Matt Godbolt

Teaching an Old Dog New Tricks: A Tale of Two Emulators

As a self-proclaimed C++ dinosaur, I set out to prove that my comfortable, battle-tested ways of writing code (somewhere between C++11 and C++14) were clearly superior to all this modern constexpr-everything, coroutine-laden C++ ...

Sherry Sontag

Telling Your Technical Story

A good technical talk is as much about storytelling as it is about presenting information. At best, it is a shared experience between speaker and audience. Even the most complex topics can be presented simply and clearly, sparking questions, conversation, and perhaps even some argument ...

Vladimir Vishnevskii

Back to Basics: Variadic Templates and Parameter Packs

Support for variadic templates was one of the major features introduced by C++11 standard. It not only enabled complex metaprogramming techniques but also made development of flexible and optimizable code much simpler ...

Andrei Zissu

C++ Contracts – a Meaningfully Viable Product

After 2 full decades of multiple efforts aimed at introducing a contracts feature into the C++ language, contracts have finally been voted into C++26 at the February 2026 C++ Standards Committee (WG21) meeting in Hagenberg, Austria ...

Lieven de Cock

Better Threading support in C++20

We got threading support by the language and library in C++11. There were however a few things missing, like RAII for a thread object, or a nice way to stop a thread, or to request it to stop. Similar problem, how do we stop a ‘waiting’ condition variable ...

Sandor DARGO

Back to the basics: Namespaces 101

In this beginner-friendly talk, we are going to explore namespaces. They are an essential tool for organizing our codebase around different concerns and across different layers. But we cannot call it a day by simply stating that. We also need to discuss their evolution ...

Mike Shah

Understanding large and unfamiliar codebases

It's your first day on the job as a new employee or intern. You setup your workstation and then download a repository of over 1,000,000 lines of code ...

Mateusz Pusz

The 10 Essential Features for the Future of C++ Libraries

C++ is a powerful language for building high-performance, flexible libraries. However, language and standard library limitations often hinder library developers from achieving their full potential ...

Structured Concurrency in C++: A Hands-On Workshop

Today, C++ software is increasingly asynchronous and parallel, a trend that is likely to continue ...

click here for more...
Peter Muldoon

Software Engineering Completeness : Knowing when you are Done and why it matters

Whether creating new features, fixing bugs or looking at larger issues affecting a codebase, what does 'Done' mean in software engineering terms and what is its effect on delivering change in the real world ...

Christopher Fretz

Beyond Sequential Consistency

In 2011, C++ introduced a formally defined memory model, providing a foundation for portable, multi-threaded code with well-defined correctness guarantees ...

Marcell Juhasz

Balancing Efficiency and Flexibility: Cost of Abstractions in Embedded Systems

This session will feature detailed case studies that measure the overhead associated with common programming abstractions in the context of embedded systems ...

Tristan Brindle

Faster, safer, better ranges

C++20 added Ranges to the standard library, extending the classic iterator model introduced in C++98. Unfortunately, the iterator-based design means that Ranges can often end up leaving performance on the table, as well as causing safety issues and usability problems ...

John Lakos

What C++ Needs to be Safe

The world runs on C++. For more than two decades, C++ has served as the workhorse of high-performance, low-power, and low-latency software across industries. Its raw speed and unconstrained flexibility have made C++ the go-to language for and backbone of large-scale software development ...

David Rowland

What can C++ learn about thread safety from other languages?

Memory safety issues in C++ have been discussed in great length over the past few years but a big corner of safety and security, thread safety seems to get far less coverage ...