Entries by Rainer Grimm

My ALS Journey (26/n): Cippi’s first Adventures

Cippi went on her first big trip. First, she went to Belgium to visit Tom Tesch, and then she flew to Toronto to CppNorth, where she was warmly welcomed by Kate Gregory. In addition, I would like to strongly recommend my current care service, Ce La Vie. >> My ALS Journey so far << Cippi’s […]

Data-Parallel Types: simd_mask

Thanks to simd_mask, conditional execution of operations on data-parallel types is possible. Unfortunately, in my last article, Data-Parallel Types – A First Example, I forgot to introduce one of the new library functions. I will make up for that in this article. Where Expression The new keyword where creates a so-called where expression. This allows […]

My ALS Journey (25/n): Small and Big Hurdles

Today, I want to share with you some of my everyday problems. >> My ALS Journey so far << New Authentication at the Bank My bank has suddenly requested that I authenticate myself using a type of Postident procedure. For me, this means that they require both a photo of my ID card and a […]

Data-Parallel Types – A First Example

After providing a theoretical introduction to the new C++ 26 feature in my last article, “Data-Parallel Types (SIMD),” I would like to follow up today with a practical example. The following introductory example is from the experimental implementation of the SIMD library. This functionality has been fully adopted in the C++ 26 draft under the […]

My ALS Journey (24/n): Cippi’s World Tour

Many of you want to get in touch with Cippi. So here is a brief overview of her travel plans for 2025. >> My ALS Journey so far << Cippi’s World Tour in 2025 These are the C++ conferences that Cippi will be attending. C++ Conferences If you would like Cippi to visit your conference, […]

Data-Parallel Types (SIMD)

The data-parallel types (SIMD) library provides data-parallel types and operations on them. Today, I want to take a closer look at this. Before diving into the new library, I would like to take a moment to discuss SIMD. SIMD Vectorization refers to the SIMD (Single Instruction, Multiple Data) extensions of a modern processor’s instruction set. […]

Read-copy-update (RCU)

Read-copy-update is strong in multithreading environments where a data structure is read almost exclusively but rarely written. First of all, what is RCU? The excellent Wikipedia page on Read-copy-update provides a good introduction: In computer science, read-copy-update (RCU) is a synchronization mechanism that avoids the use of lock primitives while multiple threads concurrently read and […]

atomic<shared_ptr<>> by Oliver Schädlich

This blog article is an experiment. A few days ago, I received the following email (translated from German) from Oliver Schädlich (oliver.schaedlich@gmail.com). If, as I hope, this article sparks a discussion, I will be happy to summarize it in my last article. Please send an email to: Rainer.Grimm@ModernesCpp.de. I just read your latest article on […]

My ALS Journey (23/n): Cippi

Let me introduce Cippi. I hope you like her. You probably already know her from my C++ books. >> My ALS Journey so far << Cippi I’m Cippi: curious, clever, and—yes—feminine! You’re probably wondering why I’m mentioning Cippi here. The reason is simple. Since I can no longer attend C++ conferences myself, I will be […]

Hazard Pointers in C++26

Hazard pointers provide garbage collection in C++ and solve the ABA problem. First of all. What is a hazard pointer? Proposal P2530R3 gives a nice explanation: A hazard pointer is a single-writer multi-reader pointer that can be owned by at most one thread at any time. Only the owner of the hazard pointer can set […]