Workshops 2025


On Wednesday, October 8, 2025, we will host one-day workshops led by visiting professional C++ trainers from several countries, covering a range of topics. These specialized in-person training events precede the main conference, which follows the next two days.

This year’s workshops are sponsored by PROMEXX, a technical automation firm that specializes in software development for complex control applications, real-time software, and mechatronics.

This year’s workshops:

Nicolai Josuttis
C++23 – A Deep Overview to Use it in Practice

Dr. Walter E. Brown
C++ Templates for Developers

Klaus Iglberger
C++ Software Design

Information about workshop trainers and outlines for each workshop are provided below.

Special Event

To ensure a high-quality experience for both attendees and trainers, each workshop will have a limited number of seats to enable effective instruction.

These workshops are a special event preceding the main conference. Workshops and the main conference are ticketed separately.

Depending on the workshop (details below), attendees should bring their laptops to work on exercises throughout the day. Workshops will typically feature a mix of lectures and instructor-led demonstrations, based on the trainer’s unique style.

All workshops are €549 (including VAT).

Schedule

Registration begins at 9:00 am and workshop runs from 10:00 AM to 6:00 PM, with scheduled breaks for coffee and lunch.

Lunch and refreshments are included with the ticket and will be provided throughout the day-long event.

Workshop Details

Below are details for each scheduled workshop. All workshops run concurrently in adjacent rooms at Breepark in Breda, the Netherlands. More information about Breda and the venue may be found on our front page.

C++23 – A Deep Overview to Use it in Practice

Nicolai Josuttis

Nicolai Josuttis (www.josuttis.com) is well-known in the community for his authoritative books and talks. For more than 25 years he has been a member of the C++ Standard Committee. He is the author of several worldwide best-sellers, including: “C++20: The Complete Guide”, “C++17: The Complete Guide”, “C++ Move Semantics: The Complete Guide”, “The C++ Standard Library: A Tutorial and Reference”,  “C++ Templates: The Complete Guide” (w/ David Vandevoorde & Doug Gregor). “C++23: The Complete Guide” is on its way.

About the Workshop

Please bring your favorite text editor (or paper/pen/pencil, if you prefer) for any note-taking you might want.

++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, covering both new features and relevant extensions. The goal is to get a first impression how to use C++23 in practice.

This one-day workshop introduces and discusses all major language and library features of C++23. As usual for his trainings and books, Nico Josuttis will focus on both the design and the practical usability of the new features so that attendees understand why we have them and how to use them right.

The workshop will concentrate on features available in at least one major compiler (gcc, clang, Visual C++) so that attendees can gain from the look-and-feel instead of just reading specifications.

The workshop is spiced with insight stories: As a long time member of the C++ Standard Committee, Nico Josuttis also talks about insights and anecdotes important to know. As a long-term trainer and educator, his material will concentrate on the essence for ordinary application programmers knowing Modern C++.

C++ Templates for Developers

Dr. Walter E Brown

With broad experience in industry, academia, consulting, and research, Dr. Walter E. Brown has been a computer programmer for more than 60 years, and a C++ programmer for over 40 of those years.  He joined the C++ standards effort in 2000, and has since written more than 175 proposal papers.  Among numerous other contributions, he is responsible for introducing such now-standard C++ library features as `cbegin`/`cend`, `common_type`, `gcd`/`lcm`, `void_t`, and `<cmath>`’s mathematical special functions, as well as the headers `<random>` and `<ratio>`.  He has also significantly impacted such C++ core language features as alias templates, contextual conversions, variable templates, `static_assert`, and `operator<=>` (the “spaceship operator”).

When not playing with his grandchildren, Dr. Brown continues as an Emeritus participant in the C++ standards process and as a frequent speaker at C++ meetups and conferences worldwide.

Dr. Brown will also be a keynote speaker at the conference.

About the Workshop

This is a lecture-style workshop. Please bring your favorite text editor (or paper/pen/pencil, if you prefer) for any note-taking you might want.

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. Whether you’ve applied `std::vector` or `std::array` to your work, or called upon any of the multitude of algorithms that the standard library provides, you’ve experienced some of the power that templates add to a C++ programmer’s toolkit.

This Workshop will help you take your knowledge and experience to the next level, so that you will both (1) understand exactly how C++ templates are handled by a compiler, and (2) be able to take advantage of that knowledge to create templates that are tailored to your own programming needs.

In this Workshop, we will explore all significant facets of the many kinds of C++ templates (and other templated entities), and will do so in as much depth as our time together will permit. The Workshop will include presentations as well as numerous examples and tips that you can learn from and apply. Many of our examples and exercises will be taken from the standard library, thus doubling the useful information you’ll glean from your participation. (We’ll even look at a few of the template-related features in the pipeline for C++26!)

Come discover how the world of C++ templates will open to you once you’ve mastered a modest handful of straightforward, key insights and principles.  Whether it’s programming generically, or with variadics, SFINAE, concepts, overloading, or other coding practices, this Workshop will allow you to explore and apply template-based techniques that will help solve problems in your programming domain!

Expand for full details on this Templates workshop:

We will emphasize principles that will allow you to reason about template technology.  To that end, the Workshop expects to cover the following representative topics in the time available (not in the order listed here):

Kinds of templates:

  – alias templates

  – class templates

  – concepts

  – deduction guides

  – function templates

  – generic lambdas

  – templated members

  – variable templates

Template processing and mechanics:

  – declaration synthesis

  – dependent and non-dependent names

  – function objects

  – non-deduced contexts

  – overloading

  – reference collapsing

  – specialization (implicit, explicit, partial)

  – substitution and substitution failure (SFINAE)

  – template arguments, argument deduction, and default arguments

  – template instantiation and its control

  – template parameters (type, nontype, and template)

  – two-phase name lookup

Related C++ language features:

  – constraints and `requires`-clauses

  – `declval`

  – `enable_if`

  – `if constexpr`

  – `requires`-expressions

  – `sizeof…`

  – `static_assert`

  – variadic templates, parameter packs, pack expansion, and fold expressions

Related standard library facilities:

  – constants as types

  – function and friends

  – invoke and friends

  – traits for inspecting types

  – traits for manipulating types

Classical techniques, practices, and idioms (time permitting):

  – algorithms

  – containers

  – customization point objects

  – perfect forwarding

  – tag dispatch

  – template metaprogramming

  – `void_t` and the detection idiom

Attendee prerequisites

Attendees should have good intermediate-level C++ knowledge with at least one to two years of recent C++ coding experience, or equivalent proficiency in other modern nested block-structured programming languages.

Past participants in this Workshop have reported their experiences with such praise as:

  – “I appreciated that your class laid the solid foundation and built upon that in a deliberate way that enhanced my grasp of the material.”

  – “It was a fantastic course, and I am saying this as someone who paid for it out of his own pocket.”

  – “I definitely learned a lot that I’ll be able to carry forward into my work.  I’ve also already recommended the course to my colleagues and hope that they’ll be able to attend a future iteration.”

Dr. Brown looks forward to welcoming you to his “C++ Templates for Developers” Workshop!

C++ Software Design

Klaus Iglberger

Klaus Iglberger is a freelance C++ trainer and consultant. He is passionate talking about clean, safe and maintainable C++ and shares his expertise in popular C++ courses — from beginner to advanced — all around the world. He is the author of “C++ Software Design” [1], one of the organizers of the Munich C++ user group [2], and the (co-)organizer of the Back-to-Basics and Software Design tracks at CppCon.

[1] https://learning.oreilly.com/library/view/c-software-design/9781098113155/

[2] https://www.meetup.com/MUCplusplus/

About the Workshop

This is an interactive workshop; please bring your laptop.

Good software design is essential for the success of a project and design patterns are the core ingredient for that. They have proven to be useful over several decades and knowledge about them is still very useful to design robust, decoupled systems. Modern C++, however, has profoundly changed the way we use C++, think about design and implement solutions. This 1-day training explores modern C++ design and the modern forms of the classic Gang-of-Four (GoF) design patterns. It provides guidelines, idioms and best practices for sustainable and maintainable design, which enable programmers to create professional, high-quality code.