CppCon 2025 How To Build Robust C++ Inter-Process Queues -- Jody Hagins

hagins-robust.pngRegistration is now open for CppCon 2026! The conference starts on September 12 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2026!

How To Build Robust C++ Inter-Process Queues

by Jody Hagins

Summary of the talk:

This talk will offer design and implementation details of a queue intended to be used between multiple processes.

The C++ standard was written with a single-process worldview, mentioning processes only once—in a note stating that lock-free atomic operations work across process boundaries. This has led to widespread but incorrect advice about using std::atomic in shared memory. When moving queue implementations from threads to processes, seemingly rock-solid code can induce undefined behavior.

In addition, traditional queue interfaces are fundamentally insufficient for cross-process communication. A properly designed inter-process queue API must enforce role separation, ensuring that a process can only perform operations appropriate to its designated role. For example, a producer process should not be able to consume messages or manage the queue itself, and the API should prevent multiple processes from accidentally assuming the same role in a single-producer design.

By the end of this talk, you will understand the fundamental differences between thread process synchronization, how to design proper interfaces for interprocess queues that enforce correct usage across process boundaries, and practical techniques to ensure your cross-process code works reliably in production environments.

Oh yeah, and you will have a full implementation that you can use and improve upon.

Exploring ref qualifiers in C++

Recently I've been wondering about ref qualifiers in C++.

Exploring ref qualifiers in C++

by Jens Weller

From the article:

Ref qualifiers are today an old C++11 feature, and recently I wanted to know more about them. Especially their potential use cases.

Thats a particular point with this feature, I've seen examples - but often without a compelling use case. This feature is a great way to achieve very specific things in C++...

 

The road to 'import boost': a library developer's journey into C++20 modules -- Rubén Pérez Hidalgo

C++20 modules have been in the standard for more than 5 years already. They promise to deliver a big change to how we write C++, but their adoption hasn't been as widespread as one would have expected. This talk is a deep dive into the practical aspects of C++20 modules, exploring the reality of the ecosystem as it is today.

The road to 'import boost': a library developer's journey into C++20 modules

Rubén Pérez Hidalgo

Watch now:

Slides of the 13th of May 2026 BeCPP Meeting

On May 13th 2026, I organized the next Belgian C++ Users Group event. There were 2 sessions:

  • “Designing Data for Performance and Maintainability” by Laurent Carlier
  • “The fastest Java Virtual Machine is the C++26 compiler” by Koen Samyn

You can find the schedule (with abstracts), slides, and pictures on the BeCPP blog:

  • Schedule: https://becpp.org/blog/2026/04/06/next-becpp-ug-meeting-planned-for-may-13th-2026/
  • Slides: https://becpp.org/blog/2026/05/20/slides-of-the-13th-of-may-2026-becpp-meeting/
  • Pictures: https://becpp.org/blog/2026/05/20/pictures-of-the-13th-of-may-2026-becpp-meeting/

Let's make a programming language

We’re kicking off a webinar series on how to build your own programming language in C++.

Let's make a programming language. Parser

by Yuri Minaev

Watch now:

We’re continuing our webinar series on building your own programming language. In the previous sessions, we implemented a lexer for our language. In this upcoming webinar (May 21, 2026, 01:00 PM UTC+1), we’ll move on to the next step — the parser. In our experience, any parser starts with parsing expressions, so that’s exactly where we’ll begin. We’ll explain what a parser is, walk through the recursive descent approach, and then demonstrate how to build your own expression parser from scratch.

Past webinars: IntroGrammarsLexer.

 

CppCon 2025 Concept-based Generic Programming -- Bjarne Stroustrup

stroustrup-concept.pngRegistration is now open for CppCon 2026! The conference starts on September 12 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2026!

Concept-based Generic Programming

by Bjarne Stroustrup

Summary of the talk:

This talk presents programming techniques to illustrate the facilities and principles of C++ generic programming using concepts. Concepts are C++’s way to express constraints on generic code. As an initial example, it provides a simple type system that eliminate narrowing conversions and provides range checking.

Concepts are used throughout to provide user-defined extensions to the type system. The aim is to show their utility and the fundamental ideas behind them, rather than to provide a detailed or complete explanation of C++’s language support for generic programming or the extensive support provided by the standard library.

The final sections briefly present design rationales and origins for key parts of the concept design, including use patterns, the relationship to Object-Oriented Programming, value arguments, syntax, concept type-matching, and definition checking. They also mention static reflection, a C++26 improvements in the support of general programming.

Call for Sponsors - Meeting C++ 2026

This years Meeting C++ conference is on the 26th - 28th November!

Meeting C++ 2026: Call for Sponsors

by Jens Weller

from the article:

Have you thought about the possibilty that you could have your employer sponsor Meeting C++ 2026?

Maybe your employer is interested in being present as a sponsor at this years Meeting C++ conference? With the call for talks closing on June 4th, now is the ideal time to talk about sponsorships for Meeting C++!

The 15th Meeting C++ conference is looking for sponsors! Come to Berlin in late November and be part of a large gathering of the C++ community!

 

What reinterpret_cast doesn't do -- Andreas Fertig

Depositphotos_347968346_S.jpgIn today's post, I will explain one of C++'s biggest pitfalls: reinterpret_cast. Another title for this post could be: This is not the cast you're looking for!

What reinterpret_cast doesn't do

Andreas Fertig

From the article:

My motivation for this blog post comes from multiple training classes I thought over the past several months and a couple of talks I gave. Since C++23, you have a new facility in the Standard Library: std::start_lifetime_as. When teaching class with a focus on embedded environments or presenting talks with such a focus, I started to add std::start_lifetime_as to the material. With an interesting outcome.

The feedback I get is roughly:

  • why do I need std::start_lifetime_as, I already have reinterpret_cast?
  • why can I use reinterpret_cast?

If you never heard of start_lifetime_as please consider reading my post, The correct way to do type punning in C++ - The second act.

PVS-Studio in CMake: It's official now

If you're working on a cross-platform project in C or C++, you usually don't rely on a single build system, but instead use a build script generator. CMake, the most popular one, has recently been officially integrated with PVS-Studio static analyzer for these languages.

PVS-Studio in CMake: It's official now

by Taras Shevchenko

From the article:

Using the built-in integration to analyze code limits your options for interacting with the analysis results: the PVS-Studio report is not saved, since source code files are analyzed individually. So, the report conversion via plog-converter is unavailable, but you can aggregate analyzer warnings in CDash—a test result monitoring system also developed by Kitware. The developers on the CMake team did just that—you can see the result of the integration here.

 

BeCPP Symposium 2026 - Gabriel Dos Reis - Tightening the Screws with C++ Profiles

BeCPP Symposium 2026 (organized by BeCPP): Now on YouTube!

Gabriel Dos Reis - Tightening the Screws with C++ Profiles

Abstract:

The C++ community has been challenged to provide practical solutions to the problem of memory safety prevalent in some software with large blast radius.  By "practical", I mean solutions that scale to billions of lines of existing running code that deliver value every single day.  The constraints we are dealt afford us neither the luxury of pausing the world for complete rewrite from scratch, nor only focusing on "future", yet to be written, code.  C++ profiles are a tooling-based evolutionary approach that meets those constraints.  They enable the C++ community to tackle similar problems in a single, extensible, and flexible framework.

About the Speaker:

Dr. Gabriel Dos Reis is an Architect for Visual Studio at Microsoft, working in the area of large scale software construction, tools, and technique.  His contributions to C++ include scalable generic programming, pioneering compile-time computation, language support for modularity, safety, and security.  He is interested in all aspects of software construction with bias towards computational logic, formal methods, and the fun of building useful tools.