Discovering Observers - Part 2 -- Sandor Dargo

SANDOR_DARGO_ROUND.JPGIn the last post, we built a templated observer framework that let any publisher push strongly-typed messages to its subscribers.
This time we’ll push the design further by trying to let a single publisher handle multiple message types—and we’ll quickly see how that innocent goal invites ambiguity, boilerplate, and some surprising trade-offs.

Discovering Observers - Part 2

by Sandor Dargo

From the article:

Last week, we took the observer pattern from a very simple example and evolved it into a more flexible, template-based implementation in C++. We ended up with abstracted publishers and subscribers, a templated message type for flexibility, and publishers controlling when and how updates are pushed.

This week, we’re going to tackle the challenge of supporting multiple message types in a single publisher.

First attempt: multiple inheritance of templated bases

It’s tempting to provide different specializations for our templates so the same publisher can push different message types.

The final schedule for Meeting C++ 2025 has been published

With today, the final schedule for Meeting C++ 2025 has been published. Tickets for Berlin and online are still available until next week Wednesday!

The last update to the schedule for Meeting C++ 2025

by Jens Weller

From the article:

With release of the static html schedule for the website everything is ready for Meeting C++ 2025!

For a few years now Meeting C++ offers two schedules: the live schedule is coming from the database, which allows us to make changes during the conference. The other schedule is part of the static website and just a single page powered by the C++ CMS from Meeting C++. Due to the 5th track this year I've just had one week before the conference the time to update the website with this now final program for the conference.

 

Celebrating C++’s 40th birthday at C++ Day in Italy

This year marks C++'s 40th anniversary, and at C++ Day 2025 (a proper "wrap-up post" will follow in the next days) we couldn't let the occasion pass without a little celebration!

While there wasn't a cake, we gathered everyone to sing "Happy Birthday, C++":

 

 

Followed by a lively game that mixed 1980s pop culture, ISO C++ trivia, Bell Labs history, and more:

 

  

Over 160 people joined the event, with about 120 staying until the end to play and win some unique prizes: 1980s-style posters featuring movie quotes reimagined with a C++ twist:

 

And we had a winner!

 

 

Also we ran a raffle including all quiz participants:

 

 

The posters also decorated the venue all day long, giving it a warm, retro, and festive feel:

 

 

It was a small but heartfelt way to celebrate four decades of a language that continues to inspire and evolve.

 

Here's to the next 40 years of C++!

Looking at binary trees in C++

While preparing a talk for Meeting C++ 2025 I've started looking into binary trees. And got curious about a different design choice.

Looking at binary trees in C++

by Jens Weller

From the article:

I'm in the process of preparing a quick talk on trees in C++ for Meeting C++ 2025. In order to see what the web offers, I've searched exactly for this, "trees in C++".

This showed that most posts found by duckduckgo or google were about binary trees, and in particular the same or similar implementation of using raw pointers for the left/right elements in the tree. Including using new to allocate for the nodes, only some times the code also bothers with using delete. The basic node class looks like this:

 

Introducing the Constexpr Debugger -- Alexander Karaev

intro_image-1.pngThe new Constexpr Debugger available in the first CLion 2025.3 EAP build allows you to stay in the compiler’s world and see what really happens – by stepping through evaluation, inspecting values, and confirming which if constexpr branch fired. Using it helps you understand exactly what the compiler is doing and fix issues faster.

Introducing the Constexpr Debugger

by Alexander Karaev

From the article:

“Not a constant expression.” You’ve seen the diagnostics and the note trail, but never the actual state. Until now.

Modern C++ pushes more logic into constexpr/consteval: parsers, tables, DSLs, hashing – real code with real branches. When code fails at compile time, you can either try to guess the reason from the compiler’s notes or de‑constexpr it and hope the runtime reproduction matches what the compiler actually did.

The new Constexpr Debugger available in the first CLion 2025.3 EAP build allows you to stay in the compiler’s world and see what really happens – by stepping through evaluation, inspecting values, and confirming which if constexpr branch fired. Using it helps you understand exactly what the compiler is doing and fix issues faster.

Discovering Observers - Part 1 -- Sandor Dargo

SANDOR_DARGO_ROUND.JPGThe goal of this mini-series is to explore the Observer Design Pattern in C++, walking through different implementations and weighing their pros and cons.

Discovering Observers - Part 1

by Sandor Dargo

From the article:

First, let’s briefly recap what the observer pattern is. It belongs to the family of behavioral design patterns.

As a reminder: design patterns are usually grouped into three categories: creational, structural, and behavioral.

You might also have encountered the observer under other names such as listenerevent subscriber, or publisher-subscriber.

The central idea is simple: instead of repeatedly querying an object for information, the querying object (the observer) gets notified automatically when the information holder (the subject) changes. For example, imagine an orchestrator object that needs the latest value of a user setting. Instead of polling the setting every n milliseconds, it can subscribe to value changes and receive notifications whenever a new value is set.

Using the common terminology: there is typically one publisher and one or more subscribers. Subscribers register for events or changes, and whenever an update happens, the publisher notifies them.

Releasing the 5th Track for Meeting C++ 2025

Meeting C++ hosts a new track in Berlin this year, offering 4 tracks onsite

Releasing the 5th Track for Meeting C++ 2025

by Jens Weller

from the article:

I am excited to announce that with the recent changes to the schedule, Meeting C++ 2025 has now 5 tracks: 4 onsite and 1 online track. This new track is possible thanks to better funding from sponsors and exhibitors enabling even more C++ content at Meeting C++ in Berlin.

For onsite attendees there is a new batch of hotel tickets and team tickets available. The current hotel ticket batch sells until Mid October.
New talks at Meeting C++ 2025

These are the new talks which are now at the conference:

    100 BC (binary compatibility) - Marc Mutz
    Case Study: Purging Undefined Behavior and Intel Assumptions in a Legacy Codebase - Roth Michaels
    Type Traits without Compiler Intrinsics – The Promise of Static Reflection - Andrei Zissu
    Back to the basics: Namespaces 101 - Sandor Dargo
    Building Bridges: C++ Interop., Foreign Function Interfaces & ABI - Gareth Williamson
    Instruction Level Parallelism and Software Performance - Ivica Bogosavljevic
    Real-time Safety — Guaranteed by the Compiler! - Anders Schau Knatten
    Missing (and future?) C++ range concepts - Jonathan Müller
    From Introductory to Advanced C++ - Learning Guidelines - Slobodan Dmitrovic
    MISRA C++ 2023 - Richard Kaiser

 

Trip Report: CppCon 2025 -- Sandor Dargo

bjarne-rock-cppcon2025.jpgA long-delayed dream finally came true: after years of near-misses and lessons learned (“better to be invited than sent”), I made it to CppCon—and it was bigger, louder, and more inspiring than I imagined. In this recap I share the vibe of the week, five standout talks and ideas, a few notes from my own session, and links to recordings as they appear.

Trip Report: CppCon 2025

by Sandor Dargo

From the article:

CppCon is simply bigger than any other C++ conference I’ve attended. A massive venue packed with people and sponsors. I logged more than 10,000 steps on the very first day — without ever leaving the resort or going to the gym.

The whole experience felt like it was on another scale compared to European conferences (which I also love). But then again, that’s often the impression when you see something American from a European perspective, isn’t it?

I never would have imagined a C++ conference where a live band plays while Bjarne Stroustrup himself makes final checks before stepping on stage to deliver the opening keynote. Absolutely rocks.

Rainer Grimm passed last week

Sadly I have to inform you about Rainer Grimms passing last week. He was a great C++ author, trainer, speaker and friend. Heartfelt condolences to his family.

Rainer Grimms ALS Journey 31/31: the end

by Beatrix Grimm

From the article:

Dear readers, we are extremely sad to inform you that Rainer passed away on October 6, 2025, surrounded by his closest family. After suffering from life-threatening pneumonia, Rainer decided against further life-sustaining measures that would have severely restricted his life. He passed away peacefully, accompanied by his family.