Jonathan Boccara's pipes library / The C++ rvalue lifetime disaster

think-cell Office

Chausseestrasse 8/E · Berlin

How to find us

Our office is in the 3rd floor. Use the entry marked E and take the elevator.

Location image of event venue


For this meet-up we have a special guest! Jonathan Boccara is in Berlin for the Meeting C++ conference that starts the next day and will present his pipes library. You may know him as the author of the blog.

The talk will start at 7pm and we will have some food starting at 6:30pm. So come early!

In Jonathan's words:

"Pipes are small components for writing expressive code when working on collections. Pipes chain together into a pipeline that receives data from a source, operates on that data, and send the results to a destination."

The code is available at for the curious.


Afterwards, think-cell's CTO Arno Schödl will talk about the "C++ rvalue lifetime disaster"

"Rvalue references have been with us since C++11. They have originally been introduced to make moving objects more efficient: the object an rvalue reference references is assumed to go out of scope soon and thus may have its resources scavenged without harm. The C++ standard library, for example, std::cref or std::ranges, makes use of yet another aspect of rvalue references: since they go out of scope soon, it is assumed unsafe to hold on to them beyond the scope of the current function, while lvalue references are considered safe. We, too, found this assumption to be very useful for smart memory management, particularly in generic code.

Unfortunately, the C++ language itself violates this assumption in at least two places. We have had hard-to-find memory corruption in our code because of these problems.

In this talk, Arno will describe the problems in detail, present a library-only approach to mitigate the problems, and finally, make an impossible-to-ever-get-into-the-standard proposal of how to put things right."



18:30 Arrival and pizza
19:00 Welcoming words from think-cell
19:05 Jonathan Boccara will talk about his pipes library
20:05 Break
20:15 Arno Schödl talks about the "C++ rvalue lifetime disaster"
21:15 Follow up discussions and drinks