JASON TURNER

Consultant and Trainer
Bio
Jason is a C++ developer, trainer, and regular conference speaker. He has hosted the YouTube channel C++ Weekly since 2016, and has authored several C++ puzzle books and C++ Best Practices books.
Strong Types – Better C++
Entire classes of bugs can be avoided with strong types. Unfortunately, using stronger types often feels like a burden to the developer. We will examine why stronger typing is beneficial and explore contemporary techniques for how to make it easier to use stronger types.
INBAL LEVI

Lead Software Engineer at Millennium
Director, ISO C++ Foundation
Bio
Inbal is a director at ISO C++ Foundation and the Boost Foundation and puts effort into evolving both the local and international C++ communities, as an organizer of the CoreC++ conference and meetup group, and as the program chair of C++Now. Inbal is a Lead Software Engineer at Millennium (MPGC Services Ltd) with an interest in code readability, compilers, language and software design. She is an active member of the ISO C++ Standards Committee as Library Evolution Work Group Chair, and as the ISO C++ Israeli NB Chair.
Welcome to 0.1 of the meta::[[verse]]!
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. In this session, we will dive into reflection and its transformative potential within our codebases. We will start with an introduction of utilities from the reflection proposal. Then, we delve deeper into practical applications and demonstrate solutions to problems that commonly use reflection and the power it holds. For the last part, we will explore the possibilities within “Reflection Libraries”. This includes both “traditional” libraries which provide functionality, and more “novel” approaches which reshape users’ code. We will look at examples of what such libraries can cover, and demonstrate potential directions the future holds. This talk will also include updates on the status of “Reflection” since the ACCU 2024 keynote. Join us as we traverse the meta::[[verse]]!
CONOR HOEKSTRA

Research Scientist at NVIDIA
Co-host ADSP: The Podcast
Bio
Conor is a Research Scientist at NVIDIA working on array programming models and languages. He is extremely passionate about programming languages, algorithms and beautiful code. He is the founder and organizer of the Programming Languages Virtual Meetup, he has a YouTube channel and he is the host of two podcasts: Algorithms + Data Structures = Programs and ArrayCast. Conor is also an avid conference speaker.
Arrays, Fusion, CPU vs GPU
Fusing algorithms across languages and accelerating code on the CPU and GPU. This talk will discuss C++ Ranges, Rust Iterators, Swift Lazy Sequences, Python Itertools and more. Different GPU techniques will include CUDA Thrust with nvcc, C++ stdpar with nvc++, CuPy, and more. Finally, the results of profiling these approaches will be shown.
MARTIJN TERPSTRA

Software Engineer at IMC Trading
Bio
Martijn plays a pivotal role in developing and optimising high-performance trading systems at IMC Trading. With a deep understanding of C++ and its applications in finance, Martijn focuses on crafting efficient, low-latency code that drives IMC’s high-frequency trading strategies. Martijn has spent over a decade tackling the challenges of highly-asynchronous systems. His work at IMC Trading involves not just writing code but architecting solutions that can handle the extreme demands of the financial markets, where every microsecond counts. Besides writing C++, Martijn is an avid gamer and dabbles in kitesurfing and bouldering.
Low Overhead Multi-threaded Logging for Low-latency Applications
Logging is one of the backbones of an application. In the multi-threaded low-latency world, it’s crucial to have efficient low-overhead logging. This talk is a deep dive into designing this framework, including the small details that matter for performance.
BRYCE ADELSTEIN LELBACH

Principal Architect at NVIDIA
Co-host ADSP: The Podcast
Bio
Bryce Adelstein Lelbach has spent over a decade developing programming languages, compilers, and software libraries. He is a Principal Architect at NVIDIA, where he leads HPC programming language efforts and drives the technical roadmap for NVIDIA’s HPC compilers and libraries. Bryce is passionate about C++ and is one of the leaders of the C++ community. He has served as chair of INCITS/PL22, the US standards committee for programming languages and the Standard C++ Library Evolution group. Bryce served as the program chair for the C++Now and CppCon conferences for many years. On the C++ Committee, he has personally worked on concurrency primitives, parallel algorithms, executors, and multidimensional arrays. He is one of the founding developers of the HPX parallel runtime system. Outside of work, Bryce is passionate about airplanes and watches.
The C++ Execution Model
At the heart of the C++ programming language is the multi-threaded abstract machine and its execution model, the platform-agnostic formal model that generically describes how to run a C++ program. In this talk, you will learn the rules that govern how your C++ code is executed and see how those rules impact the C++ code you write every day.
We’ll explore the C++ execution and memory model, and discuss fundamental questions such as:
* What are threads in C++ and how do they interact?
* What is memory in C++?
* In what order are things in my C++ program executed?
* How are C++ expressions and statements executed?
* What are the semantics of calling a function in C++?
* What does “happens before” mean?
If you’re interested in gaining a deeper understanding of how your C++ code is executed and how concurrency works in C++, you should attend this talk.
BJÖRN FAHLLER

Senior developer at Net Insight
Bio
Björn is a senior developer at Net Insight. He has created the popular open source C++ libraries Trompeloeil for mocking and strong_type for type safety. He is also keen on improving the skills of the teams he works in by learning and sharing knowledge.
Cache-friendly data + functional + ranges = ❤️
Experience has shown that when working with data in bulk, or when the data sets are small, structs of vectors is the way to go for performance. Working with structs of vectors can be cumbersome, however. Let’s have a look at what can be done with the recent additions to the C++ language and standard library.
FREDRICK OMONDI

Software Engineer at Intel Corporation
Bio
Fred is a seasoned software power and performance optimization engineer with over 11 years of experience at Intel. He possesses a vast background in embedded systems, media optimization, SIMD, accelerating model inferencing, and algorithmic optimization. His deep architectural knowledge spans across various compute devices, including CPUs, iGPUs, dGPUs, and NPUs.
Introduction to Writing and Profiling GPU Kernels
Have you ever fancied delving into high-performance computing? Whether you’re a novice or a seasoned pro looking to unleash the full potential of your GPU, this session will equip you with the skills to get the most out of your GPU. This talk will begin by introducing high-performance computing and various GPU programming frameworks. It will then delve into GPU programming constructs and profiling GPU kernels to maximize performance and efficiency. To wrap it up, we’ll put the bits and pieces into practice by live coding a SYCL kernel. Topics discussed will include blocks, work items, work ranges, memory barriers and fences, parallel algorithms, GPU occupancy levels, copy times, and memory access patterns.
BAREND GEHRELS

Staff Software Engineer at TomTom
Bio
Barend Gehrels was born in Flevoland, situated four meters below sea level. He pursued his education in physical geography at University Utrecht, subsequently venturing into the field of Geographical Information Systems. Since 1995, he has combined his GIS expertise with C++. Barend’s career started at Arcadis, followed by a 17-year tenure at Geodan. In 2013, he joined TomTom, where he currently serves as a Staff Software Engineer.
Exploring Boost.Geometry: A Library Based on Concepts, Traits and Tag Dispatching
Boost.Geometry is one of the most popular libraries within the Boost C++ Libraries. This presentation will provide an in-depth exploration of Boost.Geometry, highlighting its design principles centered around C++20 concepts, tag dispatching, and template meta programming using traits. We will illustrate Boost.Geometry’s distance algorithm both from a user perspective and from the C++ design perspective, and how one function call can work for different types and coordinate systems. Additionally, a brief live example will be demonstrated. From this hands-on introduction of Boost.Geometry, participants will gain valuable insights into the application of concepts and traits in a real-world, large-scale library, empowering them to apply this knowledge in their own C++ development projects.
PHIL NASH

Consultant and Trainer
Bio
Phil is the original author of the C++ test framework, Catch2 and is an independent consultant and trainer, specialising in TDD and Modern C++. Formerly Developer Advocate at Sonar and JetBrains, he has had a career that spans finance, mobile and software security. He’s also a member of the ISO C++ standards committee, organiser of C++ London and C++ on Sea, as well as co-host and producer of CppCast.
Mastering the Special Member Functions : The Rules of 0 to 5 and Beyond
Lifetime management in C++ offers flexibility and power, but it comes with significant complexity, especially as the language has evolved. The Rules of 0 and 5 are essential for managing this complexity. Ideally, your types should require no Special Member Functions (like destructors, copy/move constructors, or assignment operators). However, if you do need one, you’ll likely need all five, and knowing how to implement them correctly can be challenging. Understanding the type you’re working with is crucial, so we’ll break down the common categories.
Come with us on a journey through these rules, type categories and behaviours and start to make sense of lifetimes in modern C++.
LIEVEN DE COCK

Principal Engineer Software at ST Engineering iDirect
Bio
Lieven is a passionate software developer, architect, team lead, and manager, with 25+ years of experience. He is passionate about C++, software craftsmanship, and clean code. His career started in the text-to-speech domain and then moved to video recognition technology for traffic environments. During the last 14 years he is active in the satellite communication industry. Lieven also contributes to several open source projects and is the lead developer of the open source IDE Code::Blocks. He is also the lead coach of the Coderdojo division in Ghent, Belgium where he lives. There is an ever growing record collection, always crying for attention to be put on the turn-tables, and many evenings are marked in the agenda for visiting live concerts. If in presented code snippets the number 242 might pop-up, this is no coincidence, paying tribute to Front 242.
Space Invaders: The Spaceship Operator is upon us
Before C++20 we had to write six comparison operators for our user defined types (or even more). For sure, a tedious task. All this gets simplified with the introduction of the spaceship operator. What happens to your code when you turn on -std=c++20 — even before we go near the spaceship operator, did your build break? Why does that happen? We will first investigate another new feature of C++20, the rewriting rules, and how that impacts your code base. Then we will dissect the spaceship operator, both how it is used and its implementation. What are comparison categories and why are these important with respect to the spaceship operator? All will be answered. What initially looked so simple does require some extra thought to correctly use the tool. We will discuss its traps and some of the less trivial considerations of this new operator.